man*_*449 19 directory python-2.6 subdirectory
我正在尝试使用python来创建批量运行其他软件所需的文件.对于部分内容,我需要生成一个文本文件,将所需的数据文件加载到软件中.我的问题是我需要输入到这个文本文件的文件存储在一组结构化文件夹中.
我需要遍历一组文件夹(最多20个),每个文件夹最多可包含3个包含我需要的文件的文件夹.文件夹的底层包含每次运行软件所需的一组文件.文本文件应该具有逐行打印的这些文件的路径+名称,添加指令行,然后从文件夹中移动到下一组文件,依此类推,直到检查完所有子级文件夹.
小智 46
查尔斯的答案很好,但可以改进,以提高速度和效率.os.walk()生成的每个项目都是三个项目的元组.这些项目是:
知道了这一点,查尔斯的大部分代码都可以通过修改forloop来浓缩:
import os
def list_files(dir):
r = []
for root, dirs, files in os.walk(dir):
for name in files:
r.append(os.path.join(root, name))
return r
Run Code Online (Sandbox Code Playgroud)
Cha*_*ian 18
使用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(subdir + "/" + file)
return r
Run Code Online (Sandbox Code Playgroud)