我有一些代码可以查看单个文件夹并提取文件。但现在文件夹结构已更改,我需要遍历文件夹以查找匹配的文件。
旧代码是什么样的
GSB_FOLDER = r'D:\Games\Gratuitous Space Battles Beta'
def get_module_data():
module_folder = os.path.join(GSB_FOLDER, 'data', 'modules')
filenames = [os.path.join(module_folder, f) for f in
os.listdir(module_folder)]
data = [parse_file(f) for f in filenames]
return data
但是现在文件夹结构变成了这样
- GSB_FOLDER\data\modules
- \folder1\data\modules
- \folder2\data\modules
- \folder3\data\modules
其中folder1、2或3,可以是任何文本字符串
我如何重写上面的代码来做到这一点...有人告诉我 os.walk 但我只是在学习 Python...所以感谢任何帮助
没什么大的改变,你只需调用 os.walk
,它会递归地遍历目录并返回文件,例如
for root, dirs, files in os.walk('/tmp'):
if os.path.basename(root) != 'modules':
continue
data = [parse_file(os.path.join(root,f)) for f in files]
这里我只检查名为“模块”的文件夹中的文件,您可以更改该检查以执行其他操作,例如在某处有模块的路径 root.find('/modules') >= 0
我是一名优秀的程序员,十分优秀!