2015-09-02 61 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

相關問題