所以我写了一个Python脚本,它可以对某个.txt
文件做某件事:
with open("1.txt") as f:
for line in f:
#DoStuff
现在这适用于1个.txt
文件。
我有一个主文件夹,在主文件夹中,我有不同的其他文件夹,在每个文件夹中,我也有几个.txt
文件。
如何遍历所有这些,以将脚本应用于主文件中每个文件夹中的每个.txt
文件?
答案 0 :(得分:1)
您可以使用os.walk()
c:\projects\hc2\app\readme.txt
c:\projects\hc2\app\release.txt
c:\projects\hc2\web\readme.txt
c:\projects\hc2\whois\download\afrinic.txt
c:\projects\hc2\whois\download\apnic.txt
c:\projects\hc2\whois\download\arin.txt
c:\projects\hc2\whois\download\lacnic.txt
c:\projects\hc2\whois\download\ripe.txt
c:\projects\hc2\whois\out\test\resources\asn\afrinic\3068.txt
c:\projects\hc2\whois\out\test\resources\asn\afrinic\37018.txt
输出:
ProductId Code
844558 3
844558 3.5
844558 4
296013 2
296013 3
494948 3.5
494948 4
494948 9
392991 4
392991 9.5
答案 1 :(得分:0)
您可以使用glob.iglob()
和os.walk()
。
这里为您提供了一些功能。
def list_of_files(path, extension, recursive=False):
'''
Return a list of filepaths for each file into path with the target extension.
If recursive, it will loop over subfolders as well.
'''
if not recursive:
for file_path in glob.iglob(path + '/*.' + extension):
yield file_path
else:
for root, dirs, files in os.walk(path):
for file_path in glob.iglob(root + '/*.' + extension):
yield file_path
您需要import glob, os
才能使用它。
在您的情况下:
for file in list_of_files(path='master_folder_path_here', extension='txt'):
...
答案 2 :(得分:0)
您可以使用python中的glob模块
from glob import glob
file_list = glob("(folder path)/*/*")
这将为您提供子子文件夹中所有文件路径的列表。
然后您可以迭代并执行操作。