2015-09-02 110 views
0

我正在创建一个python Tk程序,发现保存文件很烦人。我有一个打开的按钮和一个保存按钮。比如我叫打开文件,并保存在另一个功能与tkinter

file = tkFileDialog.askopenfile(mode='rb',title='Select a file') 

这个函数

def open_command(self): 

在另一个功能

def save_file(self): 

我要保存的文件。为了节省下的同名文件我要再次呼吁

file = tkFileDialog.asksaveasfile(mode='w') 

,这会打开另一个窗口,那么它会要求你命名的文件,如果你想覆盖该文件finaly提示。有没有办法保存没有任何窗口的文件?有没有可能以任何方式关闭一个函数中的文件,然后写入文件并将其保存到另一个函数中?

+0

你的意思是一种无声的保存/覆盖? – TigerhawkT3

回答

1

这听起来像你想要一个无声的保存/覆盖,以便用户可以打开一个文件,修改它,然后点击保存更新保存的文件。我建议要求一个文件名称,因为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 
+0

这有帮助,但是我只能打开一个文件,然后在一些更改后保存它,而不必选择该文件并打开另一个窗口(只需单击“保存”并完成) – Starwarsfan2099

+0

是否正确保存对文件的引用你在'open_command'中得到的名字? 'save_file'函数应该简单地引用那个保存的名字。它应该能够根据需要多次这样做。那个引用被删除了吗? – TigerhawkT3

相关问题