在用tkinter
设计的GUI应用程序中,我希望以追加模式将一些数据保存在文件中。要获取文件名,我使用asksaveasfilename
from filedialog
模块。代码如下:
from tkinter.filedialog import asksaveasfilename
def save_file():
file_name = asksaveasfilename()
if file_name:
f = open(file_name, 'a')
contents = tab_chrono.text_area.get(1.0, 'end')
f.write(contents)
f.close()
当我在对话框中选择一个现有文件时,出现了一个警告,该文件将被覆盖。这不是真的,因为我附加在文件中。
有没有办法消除这个警告?还是我必须自己重写一个askappendfilename
?这在filedialog
模块中丢失。
选择现有文件时,请使用选项
confirmoverwrite
来阻止该消息。编辑:请注意,我正在使用
f.read()
来打印现有文本。您可能需要删除
f.read()
和随后的print
语句,并用f.seek(0,2)
替换它们,该语句将指针定位在现有文件的末尾。另一个选项如下所示,使用文件打开中的
append
选项,如果文件不存在,该选项将创建该文件:asksaveasfilename
对话框接受一个confirmoverwrite
参数来启用或禁用文件存在性检查。这可以在tk_getSaveFile的Tk手册中找到,但似乎没有为tkinter记录。它是在Tk 8.5.11中引入的,因此在Tk术语中是相对较新的(2011年11月发布)。
相关问题 更多 >
编程相关推荐