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