【发布时间】:2017-11-09 10:01:28
【问题描述】:
我有一个程序可以读取目录中所有带有“.txt”扩展名的文件,并对这些文件中写入的数字进行操作。程序是这样的:
import glob
list_of_files = glob.glob("*.txt")
for filename in list_of_files:
p,j, x = open(filename, "r")
#do things
例如,我可以将文件夹中所有文件的所有 p 相加。问题是我有许多具有相同结构的文件夹,并且在每个文件夹中我都需要运行相同的程序。由于我不想在每个文件夹中复制粘贴 python 程序然后运行它,所以我正在寻找一种递归方式。
我发现 python 有一个名为 os 的库可以提供帮助:
for root, dirs, files in os.walk(path):
for name in files:
#do things
问题是我不知道如何确保程序对每个文件夹都执行一次,而且我担心这样做我可能会同时考虑所有子文件夹中的所有文件,而我需要分别处理每个文件夹中的所有文件......换句话说,我需要类似的东西:
for root, dirs in os.walk(path):
for files in dirs:
glob.glob("*.txt)
#do things
【问题讨论】:
-
你尝试过实际的递归吗?
-
您能详细说明一下吗?我不明白
-
所有文件夹都有一个共同的根目录吗?
-
是的,所有文件夹都有一个共同的根目录,并且每个文件夹的文件数都相同
-
您定义了一个解析目录的函数,并且对于您找到的每个文件夹,您再次执行文件夹解析器。
标签: python subdirectory