将结果从os.walk写入并结束到特定的数组位置

时间:2018-02-21 20:02:28

标签: python arrays os.walk ends-with

我尝试使用过滤器搜索一系列文件夹/子文件夹,然后将结果写出来。如果结果写入同一个数组,它可以工作,但无法弄清楚如何将匹配指向特定数组。感谢您的任何建议。

matchlist = [ ['*.csv'], ['*.txt'], ['*.jpg'], ['*.png'] ]
filearray = [ [],[],[],[] ]
for root, dirs, files in os.walk(folderpath):
    for file in files:
        for entry in matchlist:
            if file.endswith(entry):
                 filearray[TheAppropriateSubArray].append(os.path.join(root, file))

2 个答案:

答案 0 :(得分:1)

您的比赛清单应为:

matchlist = ['.csv', '.txt', '.jpg', '.png']

然后改变你的:

    for entry in matchlist:
        if file.endswith(entry):
             filearray[TheAppropriateSubArray].append(os.path.join(root, file))

要:

    for i, entry in enumerate(matchlist):
        if file.endswith(entry):
             filearray[i].append(os.path.join(root, file))

答案 1 :(得分:0)

考虑使用字典:

strncpy