我正在创建一个python Tk程序,发现保存文件很烦人。我有一个打开按钮和一个保存按钮。例如,我打电话
file = tkFileDialog.askopenfile(mode='rb',title='Select a file')
来自这个功能
def open_command(self):
在另一个功能
def save_file(self):
我想保存文件。要以相同的名称保存文件,我必须调用
file = tkFileDialog.asksaveasfile(mode='w')
再次打开另一个窗口,然后它会要求您命名该文件,最后会提示您是否要覆盖该文件。有没有办法保存文件没有任何窗口?是否有可能以任何方式不在一个函数中关闭文件然后写入文件并将其保存在另一个函数中?
答案 0 :(得分:1)
听起来您需要静默保存/覆盖,以便用户可以打开文件,修改它,然后单击“保存”以更新保存的文件。我建议要求提供文件 name ,因为askopenfile
要求输入名称,然后立即按名称提供文件对象。
self.save_name = tkFileDialog.askopenfilename(title='Select a file')
with open(self.save_name, 'rb') as f:
self.the_data = f.read() # insert processing here
如果只询问名称,可以保存该名称,然后直接在保存功能中使用它:
with open(self.save_name, 'wb') as output:
output.write(self.the_data) # insert processing here