2017-09-26 98 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上它似乎并不 –