2016-03-19 13 views
1

に接尾辞せずにファイルを認識しませんが、何らかの理由で、ダイアログが開いたとき、それはサフィックスなしですべてのファイルが表示されません。たとえば、notesというテキストファイルがある場合、そのファイルはダイアログに表示されません。しかし、notes.txtに名前を変更すると、notesnotes.txtの両方が名前の違いを持つテキストファイルであっても、ファイルのリストに表示されます。「tkinter.filedialogは、」私は<code>filedialog.askopenfilename(filetypes=[("All files", "*.*")])</code>を使用しています、その名前

これを修正するにはどうすればよいですか?プログラムのユーザーが名前に接尾辞を常に含めることを除けば、本当に不合理なようです。

答えて

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() 

デモ:ここ

は、上記のプログラムのスクリーンショットです:

enter image description here

+1

は、詳細な説明のためにありがとうございました。 –

関連する問題

 関連する問題