Skip to main content
 首页 » 编程设计

Python os.walk 跳过具有特定名称而不是路径的目录

2025年05月04日13小虾米

所以我有一个文件系统,我希望能够使用 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 

(请注意,如果您使用自下而上的扫描方式,这将不起作用。自上而下的方式是默认方式。)

See the documentation