Python中的文件夹列表

时间:2016-01-04 14:46:32

标签: python list indexing directory

我有一个关于如何在Python中仅列出文件夹而不是文件夹中的文件的问题。我目前有几行代码将ever文件夹中的每个文件连接到一个列表中。如果我有50个文件夹,我想制作50个不同的列表而不是一个大的列表。

Folder_files = []                                                        
for dirName, subdirList, fileList in os.walk(Path):                                                                                                               
    for filename in fileList:                                                                                                                         
        if "A_0" in dirName:                                                                                  
            if ".xml" in filename.lower():                                                       
                Folder_files.append(os.path.join(dirName,filename)) 

我知道我目前只有Folder_files作为我唯一的列表,但我希望通过使用for循环来实验,以获得不同的列表。

在选择A_0文件之前,我只是需要帮助了解如何阅读文件夹.xml

在将文件附加到列表之前。我附上了一个示例代码,我想它将如下所示:

    for dirName, subdirList, fileList in os.walk(Path):                                                                                                               
        for filename in fileList:                                                                                                                         
            if "A_0" in dirName: 
                #for loop in here
                    #Set up all folders                                       
                        if ".xml" in filename.lower():                                                       
                           #Add files in folder to the appropriate file list

2 个答案:

答案 0 :(得分:0)

为此目的使用列表的dict要好得多:

dirs = dict()
for dirName, subdirList, fileList in os.walk(root):
    if "A_0" in dirName:
        dir_list = dirName.split('/')[-1]   # if your directory path is '/foo/bar/baz' your list will be named 'baz'
        dirs[dir_list] = [os.path.join(dirName,filename) for filename in fileList if ".xml" in filename]

但如果你真的想将每个列表存储为单独的变量,你可以使用exec():

for dirName, subdirList, fileList in os.walk(root):
    if "A_0" in dirName:
        dir_list = dirName.split('/')[-1]   # if your directory path is '/foo/bar/baz' your list will be named 'baz'
        exec(dir_list + '= [os.path.join(dirName,filename) for filename in fileList if ".xml" in filename]')

理解和维护第二段代码要困难得多。所以我鼓励你使用列表字典。

答案 1 :(得分:0)

import os

dirs= next(os.walk(r'/home/sirmagid/public_html/ts/'))[1]
for name in dirs:
    print name