我想允许用户从文件管理器中选择CSV文件。但是它也显示所有隐藏的文件夹,这是非常不合适的。如何避免隐藏文件夹?
def importCSV(self):
self.file = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("CSV files","*.csv"),("all files","*.*")))
答案 0 :(得分:0)
filedialog.askopenfilename
这行只是打开操作系统的文件选择器。这不是Python的文件选择器。
您可以在操作系统中禁用show hidden files
的选项,它们也会在文件选择器中消失。
对于Windows,此选项在“控制面板”的“文件资源管理器”选项中可用。
对于Ubuntu,此选项位于filemanager > top menu->View->Show hidden files
答案 1 :(得分:0)
经过一番搜索,我设法找到了答案here。我对链接的示例进行了一些细微的更改,使其可以在Python 3上运行。要对其进行测试,只需在执行后按ctrl+o
。
from tkinter import *
from tkinter import filedialog
root = Tk()
try:
# call a dummy dialog with an impossible option to initialize the file
# dialog without really getting a dialog window; this will throw a
# TclError, so we need a try...except :
try:
root.tk.call('tk_getOpenFile', '-foobarbaz')
except TclError:
pass
# now set the magic variables accordingly
root.tk.call('set', '::tk::dialog::file::showHiddenBtn', '1')
root.tk.call('set', '::tk::dialog::file::showHiddenVar', '0')
except:
pass
# a simple callback for testing:
def openfile(event):
fname = filedialog.askopenfilename(initialdir='/', title='Select file', filetypes=(('CSV files', '*.csv'), ('all files', '*.*')))
print(fname)
root.bind('<Control-o>', openfile)
root.mainloop()
showHiddenVar
用于选择是否默认显示隐藏文件。如果您不想让用户在显示和隐藏隐藏文件之间切换,则只需将showHiddenBtn
设置为'0'
。