Python 3.x 如何将现有文本文件数据传输到另一个文本文件,或创建和写入文本文件并将数据传输到另一个文本文件?
a) 我有一个组合框(下拉列表中的现有文本文件),我想从下拉列表中选择文本文件并从中读取行,然后将选择行传输到另一个文本文件中。 b) 我有一个条目(entry2),我想通过从该条目(entry2)中获取其名称并在新创建的文本文件中写入一些数据(来自entry3)来创建文本文件。最后,我想把数据从新创建的文本文件传输到另一个文本文件 上面a)和b)中提到的“另一个文本文件”只是同一个文件。因此,基本上a)或b)都是这样。我可以一次执行a)和b)一个,但我想将两者结合起来,比如组合框选择是否存在do a)或entry2是否存在do b) 下面是我尝试过的,我不确定combo1.get()==True和entry2.get()==True的循环是否有效Python 3.x 如何将现有文本文件数据传输到另一个文本文件,或创建和写入文本文件并将数据传输到另一个文本文件?,python-3.x,tkinter,combobox,tkinter-entry,Python 3.x,Tkinter,Combobox,Tkinter Entry,a) 我有一个组合框(下拉列表中的现有文本文件),我想从下拉列表中选择文本文件并从中读取行,然后将选择行传输到另一个文本文件中。 b) 我有一个条目(entry2),我想通过从该条目(entry2)中获取其名称并在新创建的文本文件中写入一些数据(来自entry3)来创建文本文件。最后,我想把数据从新创建的文本文件传输到另一个文本文件 上面a)和b)中提到的“另一个文本文件”只是同一个文件。因此,基本上a)或b)都是这样。我可以一次执行a)和b)一个,但我想将两者结合起来,比如组合框选择是否存在d
from tkinter import *
from tkinter import Button
from tkinter import font
from tkinter.ttk import Combobox
import os
root=Toplevel()
root.state('zoomed')
bold20= font.Font(family='Times', size=18)
bold15= font.Font(family='Times', size=15)
bold30= font.Font(family='Times', size=30, weight='bold')
boldunderline30= font.Font(family='Times', size=30, weight='bold', underline=True)
topFrame = Frame(root, width=10000, height=500, relief= "raised", borderwidth=3)
topFrame.pack(expand=True, fill='both')
label4= Label(topFrame, text="Choose from the existing files:", font=bold20)
label4.grid(row=3, column=3, padx=400, pady=10, sticky=W)
label8= Label(topFrame, text="Store it in new file:", font=bold20)
label8.grid(row=7, column=3, padx=400, pady=10, sticky=W)
label7= Label(topFrame, text="New File:", font=bold20)
label7.grid(row=6, column=3, padx=400, pady=10, sticky=W)
entry3=Entry(topFrame)
entry3.grid(row=7, column=3, padx=750, pady=10, sticky=W)
OC_data=os.listdir("C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Operating Characteristics")
combo1= Combobox(topFrame, values=OC_data, width="30")
combo1.grid(row=3, column=3, padx=750, pady=10, sticky=W)
entry_field_variable = StringVar()
entry2 = Entry(topFrame, textvariable=entry_field_variable)
entry2.grid(row=6, column=3, padx=750, pady=10, sticky=W)
def save():
file_name1= combo1.get()
file_name2= entry2.get()
if combo1.get()==True:
existing_file= open("C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Operating Characteristics\\"+file_name1, 'r')
line1=existing_file.readlines()
with open('C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Other data\IIL & Cap.txt', 'w') as i:
i.write(str(line1[0][10:]))
i.close()
if entry2.get()==True:
with open('C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Operating Characteristics\\'+file_name2+ '.txt', 'w') as f:
f.write("Capacity: " + entry3.get())
f.close()
new_file=open("C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Operating Characteristics\\"+file_name2 + '.txt', 'r')
line2=new_file.readlines()
with open('C:\Fourth Term @ Dal\Project\Collaboration\Sensitivity analysis\GUI\Cash Models\Other data\IIL & Cap.txt', 'w') as i:
i.write(str(line2[0][10:]))
i.close()
savebutton = Button(topFrame, borderwidth=2, bg="skyblue", text="Save info.", font=bold20, width=10, pady=5, command=save)
savebutton.grid(row=14, column=3, padx=700, pady=30, sticky=W)
root.mainloop()
我希望上述问题能得到很好的回答。如果你们中的任何人不介意看一下,我会很高兴的:TIA:)在这里输入代码combo1.get()
和entry2.get()
都将返回一个字符串,因此它们都不会是==True
。但如果字符串不是空的,则字符串的计算结果将为True
,因此您可以编写:
if combo1.get():
# etc.
如果字符串为空,则if
表达式的计算结果将为False
,如果字符串包含字符,则表达式的计算结果将为True
还有,;不要将根窗口创建为:
root=Toplevel()
因为这还将创建Tk()
的实例。而是使用:
root = Tk()
combo1.get()
和entry2.get()
都将返回一个字符串,因此它们都不会是==True
。但如果字符串不是空的,则字符串的计算结果将为True
,因此您可以编写:
if combo1.get():
# etc.
如果字符串为空,则if
表达式的计算结果将为False
,如果字符串包含字符,则表达式的计算结果将为True
还有,;不要将根窗口创建为:
root=Toplevel()
因为这还将创建Tk()
的实例。而是使用:
root = Tk()
非常感谢,这对我很有效。正如您建议在Toplevel()上使用Tk(),它也可以工作,但问题是,每当我在button小部件中添加图像而不是文本时,我都会遇到一些错误,我不记得确切的错误,但我在这个网站上搜索了它,发现Toplevel()工作正常,除了您提到的它创建了Tk()的实例。再次感谢:)非常感谢,这对我很有效。正如您建议在Toplevel()上使用Tk(),它也可以工作,但问题是,每当我在button小部件中添加图像而不是文本时,我都会遇到一些错误,我不记得确切的错误,但我在这个网站上搜索了它,发现Toplevel()工作正常,除了您提到的它创建了Tk()的实例。再次感谢:)