所以我有一个文件系统,我希望能够使用python检查和更新。我的解决方案是os.walk但是我的需求和我的文件系统会出现问题。这就是目录的布局方式:
Root
dir1
subdir
1
2
3...
file1
file2
dir2
subdir
1
2
3...
file1
file2
...
主目录有不同的名称,因此“dir1”和“dir2”,但这些目录中的目录彼此具有相同的名称,并包含许多不同的文件和目录。子目录是我想从os.walk中排除的,因为它们会增加不必要的计算。
有没有办法根据目录的名称而不是路径从os.walk中排除目录,还是需要做其他事情?
答案 0 :(得分:7)
os.walk
允许您修改它为您提供的目录列表。如果你拿出一些,它就不会进入那些目录。
for dirpath, dirnames, filenames in os.walk("/root/path"):
if "subdir" in dirnames:
dirnames.remove("subdir")
# process the files here
(请注意,如果您使用自下而上的扫描方式,这不起作用。自上而下的样式是默认样式。)