【发布时间】:2016-10-13 08:27:55
【问题描述】:
从使用tkinter 设计的GUI 应用程序中,我希望以附加模式将一些数据保存在文件中。要获取文件名,我使用来自filedialog 模块的asksaveasfilename。代码如下:
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 模块中缺少此功能。
【问题讨论】:
-
如果你总是选择要附加的文件(但你更新创建新文件)那么你可以使用
askopenfilename但它会显示按钮“打开”而不是“保存”(你可以设置窗口标题= “打开以追加”)。否则您将不得不创建自己的对话框。 -
很遗憾,如果文件不存在,我想创建一个新文件。
-
所以你必须创建自己的对话框。尝试
print(tkinter.filedialog.__file__)使用asksaveasfilename(和其他文件对话框)查看文件路径。您可以使用此代码创建自己的版本。或者从头开始创建:)
标签: python tkinter filedialog