Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将现有文本文件数据传输到另一个文本文件,或创建和写入文本文件并将数据传输到另一个文本文件?_Python 3.x_Tkinter_Combobox_Tkinter Entry - Fatal编程技术网

Python 3.x 如何将现有文本文件数据传输到另一个文本文件,或创建和写入文本文件并将数据传输到另一个文本文件?

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

a) 我有一个组合框(下拉列表中的现有文本文件),我想从下拉列表中选择文本文件并从中读取行,然后将选择行传输到另一个文本文件中。 b) 我有一个条目(entry2),我想通过从该条目(entry2)中获取其名称并在新创建的文本文件中写入一些数据(来自entry3)来创建文本文件。最后,我想把数据从新创建的文本文件传输到另一个文本文件

上面a)和b)中提到的“另一个文本文件”只是同一个文件。因此,基本上a)或b)都是这样。我可以一次执行a)和b)一个,但我想将两者结合起来,比如组合框选择是否存在do a)或entry2是否存在do b)

下面是我尝试过的,我不确定combo1.get()==True和entry2.get()==True的循环是否有效

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()的实例。再次感谢:)