os.walk没有隐藏的文件夹
我需要列出文件夹中包含目录路径的所有文件。我尝试使用os.walk
,这显然是完美的解决方案。
但是,它还会列出隐藏的文件夹和文件。我希望我的应用程序不列出任何隐藏的文件夹或文件。有没有可以用来使其不产生任何隐藏文件的标志?
跨平台对我而言并不是很重要,如果只适用于linux(。*模式)就可以了
回答:
不,没有选择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
与那些满足条件(例如,目录名称不开始.
),os.walk()
将不能访问不符合标准的目录。
仅当您在以下文档中将topdown
关键字参数保留为时True
,此方法才有效:os.walk()
如果
topdown
是True
,调用者可以修改就地(也许使用dirnames中列表del
或切片分配),并且walk()
将只递归到他们的名字留在子目录dirnames中 ;
它可以用来修剪搜索,强加特定的访问顺序,甚至可以
walk()
在调用者walk()
再次恢复之前通知其创建或重命名的目录。
以上是 os.walk没有隐藏的文件夹 的全部内容, 来源链接: utcz.com/qa/412968.html