Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x &引用;tkinter.filedialog“;无法识别名称中没有后缀的文件_Python 3.x_Tkinter - Fatal编程技术网

Python 3.x &引用;tkinter.filedialog“;无法识别名称中没有后缀的文件

Python 3.x &引用;tkinter.filedialog“;无法识别名称中没有后缀的文件,python-3.x,tkinter,Python 3.x,Tkinter,我使用的是filedialog.askopenfilename(filetypes=[(“所有文件”,“*”)]),但由于某些原因,当对话框打开时,它不会显示任何没有后缀的文件。例如,如果有一个名为notes的文本文件,它将不会显示在对话框中。但是如果我将其重命名为notes.txt,则它会显示在文件列表中,即使notes和notes.txt都是文本文件,只是名称不同而已 有没有办法解决这个问题?除了程序的用户之外,总是在名称中包含后缀似乎真的不合理 官方文档中没有提到,但如果您想获取带有或不带

我使用的是
filedialog.askopenfilename(filetypes=[(“所有文件”,“*”)])
,但由于某些原因,当对话框打开时,它不会显示任何没有后缀的文件。例如,如果有一个名为
notes
的文本文件,它将不会显示在对话框中。但是如果我将其重命名为
notes.txt
,则它会显示在文件列表中,即使
notes
notes.txt
都是文本文件,只是名称不同而已


有没有办法解决这个问题?除了程序的用户之外,总是在名称中包含后缀似乎真的不合理

官方文档中没有提到,但如果您想获取带有或不带扩展名的文件,则需要更改:

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()
从Tkinter导入*
导入tkFileDialog
f_options=dict(文件类型=[('All files','*'))
类Begueradj(Tk):
定义初始化(自):
Tk.\uuuuuu初始(自我)
title('Begueradj测试所有文件')
menu=self.menubar=menu(self)
fmenu=self.filemenu=Menu(Menu,tearoff=0)
menu.add_级联(label='File',underline=0,menu=fmenu)
fmenu.add_命令(label=“Open”,下划线=0,
加速器='Ctrl+O',
命令=self.fopendialog)
self.config(menu=menu)
self.bind_all(“”,self.fopendialog)
def fopendialog(自身,事件=无):
打印报告(tkFileDialog.askopenfilename)(父项=自身,
**f_(可选方案)
如果名称=“\uuuuu main\uuuuuuuu”:
test=Begueradj()
test.mainloop()
演示: 以下是上述程序的屏幕截图:


官方文档中没有提到,但如果您想获取带有或不带扩展名的文件,则需要更改:

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()
从Tkinter导入*
导入tkFileDialog
f_options=dict(文件类型=[('All files','*'))
类Begueradj(Tk):
定义初始化(自):
Tk.\uuuuuu初始(自我)
title('Begueradj测试所有文件')
menu=self.menubar=menu(self)
fmenu=self.filemenu=Menu(Menu,tearoff=0)
menu.add_级联(label='File',underline=0,menu=fmenu)
fmenu.add_命令(label=“Open”,下划线=0,
加速器='Ctrl+O',
命令=self.fopendialog)
self.config(menu=menu)
self.bind_all(“”,self.fopendialog)
def fopendialog(自身,事件=无):
打印报告(tkFileDialog.askopenfilename)(父项=自身,
**f_(可选方案)
如果名称=“\uuuuu main\uuuuuuuu”:
test=Begueradj()
test.mainloop()
演示: 以下是上述程序的屏幕截图:


非常感谢您的详细解释。非常感谢您的详细解释。