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