0

您好 stackoverflow 的用户,

例如,在查看文件夹时,我有一个关于如何定位特定文件夹的问题,请查看下面的目录树:

--> MAIN FOLDER --> Subject 1 --> A_Folder --> files
                --> Subject 2 --> A_Folder --> files
                              --> B_Folder --> files
                --> Subject 3 --> A_Folder --> files
                              --> B_Folder --> files

所以Subject 1只有一个子文件夹A_Folder,但是Subject 2和Subject 3都有两个子文件夹A_Folder和B_Folder。

我的目标是我想添加 Subject 2 和 Subject 3 的 A_Folder 和 B_Folder 的内容,但忽略 Subject 1 的 A_Folder。

目前这就是我定位文件夹的方式......

A_files = []                                                                                                                                                               
for dirName, subdirList, fileList in os.walk(Path):                                                                                                                  
    for filename in fileList:                                                                                                                          
        if "A" in dirName:   
            A_files.append(os.path.join(dirName,filename))                                                                                                                                                                     

B_files = []                                                                                                      
for dirName, subdirList, fileList in os.walk(Path):                                                                                                              
    for filename in fileList:                                                                                                                          
        if "B" in dirName:                                                                                    
            B_files.append(os.path.join(dirName,filename))  

我感谢您的帮助!

4

1 回答 1

0

文档中

dirnames调用者可以就地修改列表(可能使用del或切片分配),并且walk()只会递归到名称保留在 dirnames 中的子目录;这可以用来修剪搜索”。

像这样的代码将遍历目录结构,完全忽略任何"Subject 1"目录。

#UNTESTED
A_files = []                                                                                                                                                               
for dirName, subdirList, fileList in os.walk(Path):                                                                                                                  
    for filename in fileList:                                                                                                                          
        if "A" in dirName:   
            A_files.append(os.path.join(dirName,filename))
        if "B" in dirName:
            B_files.append(os.path.join(dirName,filename))
    if 'Subject 1' in subdirList:
        subdirList.remove('Subject 1')
于 2016-01-07T18:31:50.063 回答