Warm tip: This article is reproduced from serverfault.com, please click

directory-遍历文件夹,然后遍历子文件夹并打印带有文本文件路径的文件名

(directory - Iterate through folders, then subfolders and print filenames with path to text file)

发布于 2013-11-12 14:41:01

我正在尝试使用python创建批量运行某些其他软件所需的文件。为此,我需要生成一个文本文件,将所需的数据文件加载到软件中。我的问题是,我需要输入此文本文件的文件存储在一组结构化文件夹中。

我需要遍历一组文件夹(最多20个),每个文件夹最多可以包含3个以上包含我需要的文件的文件夹。文件夹的最底层包含每次运行该软件所需的一组文件。文本文件应逐行打印这些文件的路径名,添加一条指令行,然后从文件夹移至下一组文件,依此类推,直到检查了所有子级文件夹。

Questioner
manish449
Viewed
11
292 2020-09-08 20:46:24

使用os.walk()。以下将输出“ dir”子目录中所有文件的列表。可以操纵结果以适合你的需要:

import os                                                                                                             
                                                                                                                      
def list_files(dir):                                                                                                  
    r = []                                                                                                            
    subdirs = [x[0] for x in os.walk(dir)]                                                                            
    for subdir in subdirs:                                                                                            
        files = os.walk(subdir).next()[2]                                                                             
        if (len(files) > 0):                                                                                          
            for file in files:                                                                                        
                r.append(os.path.join(subdir, file))                                                                         
    return r                                                                                                          

对于python 3,更改next()__next__()