编写文本并保存对话框


from tkinter import * 
from tkinter import ttk 
from tkinter.filedialog import asksaveasfile 

root = Tk() 
root.geometry('200x150') 
Text = ['word','great','text']
def save(): 
text_file = asksaveasfile(title="Select Location", filetypes=(("Text Files", "*.txt"),))
with open(text_file, 'w') as f:
f.write(Text)

btn = ttk.Button(root, text = 'Save', command = lambda : save()) 
btn.pack(side = TOP, pady = 20)

mainloop()

TypeError:应为str、字节或os。PathLike对象,而不是TextIOWrapper

我有一个名为Text的列表。我想将列表的内容打印到一个文本文件中。我该怎么办?

这是对我有用的东西:

lst = ['Hello Theren', 'How are yan', 'All good?n']
def save(): 
text_file = asksaveasfile(title="Select Location", filetypes=(("Text Files", "*.txt"),))
for line in lst:
text_file.write(line) # Use str(line) if lst is of integers

错误在于asksaveasfile返回一个_io.TextIOWrapper对象,这意味着它与使用open(...)一个文件相同。您想要的是asksaveasfilename(),它将返回对象的路径,然后:

def save(): 
text_file = asksaveasfilename(title="Select Location", filetypes=(("Text Files", "*.txt"),))
with open(text_file, 'w') as f:     
for line in lst:
f.write(line) # Use str(line) if list of integers

最新更新