我正在使用filedialog.askopenfilename(filetypes=[("All files", "*.*")])
,但出于某种原因,当对话框打开时,它不显示任何没有后缀的文件。例如,如果存在名为notes
的文本文件,则它不会显示在对话框中。但是,如果我将其重命名为notes.txt
,则它会显示在文件列表中,即使notes
和notes.txt
都是只有名称差异的文本文件。
有没有解决这个问题?除了程序的用户总是在名称中包含后缀之外,这似乎是不合理的。
答案 0 :(得分:0)
官方文档没有提及它,但是如果你想获得带或不带扩展名的文件,你需要更改:
askopenfilename(filetypes=[("All files", "*.*")])
要:
askopenfilename(filetypes=[("All files", "*")])
这是一个简单的代码来演示上述声明:
from Tkinter import *
import tkFileDialog
f_options = dict(filetypes=[('All files','*')])
class Begueradj(Tk):
def __init__(self):
Tk.__init__(self)
self.title('Begueradj Test All Files')
menu = self.menubar = Menu(self)
fmenu = self.filemenu = Menu(menu, tearoff=0)
menu.add_cascade(label='File', underline=0, menu=fmenu)
fmenu.add_command(label="Open", underline=0,
accelerator='Ctrl+O',
command=self.fopendialog)
self.config(menu=menu)
self.bind_all('<Control-o>', self.fopendialog)
def fopendialog(self, event=None):
print repr(tkFileDialog.askopenfilename(parent=self,
**f_options))
if __name__ == "__main__":
test = Begueradj()
test.mainloop()
以下是上述程序的屏幕截图: