2017-09-26 80 views
0

當我使用tkinter的asksaveasfile函數時,它無意中打開了文件夾,而不是保存文件,只是恰好被命名爲該文件夾。tkinter asksaveasfile函數打開文件夾

給出的示例代碼:

import tkinter.tkFileDialog 

f = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt") 

和文件結構,如:

Desktop (initial directory) 
| ----------> example (folder) 

其中桌面是初始目錄和實施例是在該目錄中的一個文件夾

如果在哪裏嘗試輸入文本「示例」,然後不是創建該文件,而是打開名爲示例的文件夾。

有什麼想法?

回答

0

一個filedialog的默認和預期的行爲是能夠粘貼一個路徑來訪問一個特定的文件夾,所以這將衝突你想在這裏實現。

一種選擇是,以提供默認的文件名的擴展名:

f = tkFileDialog.asksaveasfile(mode='w', 
           initialfile='.txt', # or even a default name 
           defaultextension='.txt') 
+0

不幸的是,加入「.TXT」似乎沒有工作(因爲它甚至沒有在文件名輸入顯示.TXT部分) –

+0

你使用了相同的語法嗎?我可以通過'filedialog'使它適用於python2或3 ..也許是平臺特定的行爲? – PRMoureu

+0

我知道這在macOS上正常工作,但在Windows上它似乎並不 –