如何保存为文件但同时获取其名称?

时间:2016-03-19 21:12:50

标签: python-3.x tkinter

我目前正在使用asksaveasfile来保存文件,它运行正常。我唯一的问题是我无法获得新的文件名。我知道asksaveasfilename存在,但如果我一起使用它们,它们会弹出两个我不希望发生的窗口。如果我尝试打印asksaveasfile的输出,我会得到以下内容:

<_io.TextIOWrapper name='/home/work/newfile.txt' mode='w' encoding='UTF-8'>.

有没有办法可以从中获取文件名?

1 个答案:

答案 0 :(得分:1)

只需使用.name

结果的asksaveasfile属性即可
import tkinter
file = tkinter.filedialog.asksaveasfile()
name = file.name

或者你可以使用asksaveasfilename然后自己打开文件:

name = tkinter.filedialog.asksaveasfilename()
file = open(name,'w')

这样你也可以使用with语句来确保文件正确关闭,这无论如何都是个好主意:

name = tkinter.filedialog.asksaveasfilename()
with open(name,'w') as f:
    NotImplemented #do stuff with the file