2016-08-13 59 views
0

所以我有一个文件系统,我希望能够使用python进行检查和更新。我的解决方案是os.walk,但它随我的需求和我的文件系统而变得有问题。这是目录的布局方式:Python os.walk跳过具有特定名称而不是路径的目录

Root 
dir1 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
dir2 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
... 

主目录有因此不同的名字“DIR1”和“DIR2”,但里面那些目录具有相同的名称,对方并包含了很多不同的文件和目录。子目录是我想从os.walk中排除的,因为它们增加了不必要的计算。

有没有一种方法可以根据目录的名称而不是路径从os.walk中排除目录,还是我需要做其他的事情?

回答

6

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

相关问题