Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter asksaveasfile函数打开文件夹_Python_Tkinter - Fatal编程技术网

Python tkinter asksaveasfile函数打开文件夹

Python tkinter asksaveasfile函数打开文件夹,python,tkinter,Python,Tkinter,当我使用tkinter的asksaveasfile函数时,它会无意中打开文件夹,而不是保存一个恰好命名为该文件夹的文件 给出示例代码: import tkinter.tkFileDialog f = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt") 以及文件结构,例如: Desktop (initial directory) | ----------> example (folder) 其中Desktop是初

当我使用tkinter的asksaveasfile函数时,它会无意中打开文件夹,而不是保存一个恰好命名为该文件夹的文件

给出示例代码:

import tkinter.tkFileDialog

f = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt")
以及文件结构,例如:

Desktop (initial directory)
 | ----------> example (folder)
其中Desktop是初始目录,示例是该目录中的文件夹

如果要尝试输入文本示例,则将打开名为example的文件夹,而不是创建该文件


有什么想法吗?

filedialog的默认和预期行为是能够粘贴路径以访问特定文件夹,因此这将与您希望在此处实现的目标相冲突

一个选项是以默认文件名提供扩展名:

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

不幸的是,添加“.txt”似乎不起作用,因为它甚至没有在文件名条目部分显示.txt。您是否使用了相同的语法?我可以使用filedialog使其适用于python2或3。。可能是平台特定的行为?我知道这在macOS上很好,但在Windows上似乎不行