我需要列出文件夹中包含目录路径的所有文件.我试着用os.walk
,这显然是完美的解决方案.
但是,它也列出了隐藏的文件夹和文件.我希望我的应用程序不要列出任何隐藏的文件夹或文件.有没有什么标志可以让它不产生任何隐藏文件?
跨平台对我来说并不重要,如果它只适用于linux(.*pattern)
我需要列出文件夹中包含目录路径的所有文件.我试着用os.walk
,这显然是完美的解决方案.
但是,它也列出了隐藏的文件夹和文件.我希望我的应用程序不要列出任何隐藏的文件夹或文件.有没有什么标志可以让它不产生任何隐藏文件?
跨平台对我来说并不重要,如果它只适用于linux(.*pattern)
不,没有选项可以跳过os.walk()
.你需要自己做(这很简单):
for root, dirs, files in os.walk(path):
files = [f for f in files if not f[0] == '.']
dirs[:] = [d for d in dirs if not d[0] == '.']
# use files and dirs
注意dirs[:] =
片的赋值;os.walk
递归遍历dirs
中列出的子目录.通过将dirs
个目录中的elements个替换为符合标准的目录(例如,名称不以.
开头的目录),os.walk()
将不会访问不符合标准的目录.
这只适用于将topdown
关键字参数从documentation of os.walk()
改为True
的情况:
当
topdown
为True
时,调用者可以就地修改dirnames列表(可能使用del
或slice赋值),walk()
将只递归到名称保留在dirnames中的子目录中;这可以用来删减搜索,强制执行特定的访问顺序,甚至可以在再次恢复walk()
之前通知walk()
调用者创建或重命名的目录.