2016-03-19 2 views
1

adında bir son eki olmayan dosyaları tanımıyor filedialog.askopenfilename(filetypes=[("All files", "*.*")]) kullanıyorum, ancak herhangi bir nedenle, iletişim kutusu açıldığında, son eki olmayan dosyaları göstermiyor. Örneğin, notes adında bir metin dosyası varsa, iletişim kutusunda görünmez. Ancak, notes.txt olarak yeniden adlandırırsam, her ikisi de notes ve notes.txt her ikisi de yalnızca bir ad farkı olan metin dosyaları olsa bile, dosyalar listesinde görünür."tkinter.filedialog",

Bunu düzeltmek için yine var mı? Programın kullanıcısı dışında daima son eki içermesi gerçekten mantıksız görünüyor.

cevap

0

resmi belgeler söz etmez, ancak birlikte veya uzantısı olmadan dosyaları almak istiyorsanız değiştirmek gerekir:

askopenfilename(filetypes=[("All files", "*.*")]) 

için:

askopenfilename(filetypes=[("All files", "*")]) 

Kanıtı:

Yukarıdaki ifadeyi göstermek için basit bir kod:

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

Demo: Burada

yukarıdaki programın bir ekran görüntüsü:

enter image description here

+1

ayrıntılı bir açıklama için çok teşekkür ederiz. –