所以,我试图查看位于不同文件夹中的多个文本文件:
path1 = 'P:/folder1/best_par.txt'
path2 = 'P:/folder2/best_par.txt'
paths = (path1, path2)
for i in paths:
inputfile = open(i)
text = inputfile.read()
cn2 = re.findall(r'(CN2\.mgt)\s+([-+]?[0-9]+\.[0-9]+)', text)
但是,因此我只有两个文件中的一个cn2值:
[('CN2.mgt', '0.142800')]
应该是这样的:
[('CN2.mgt', '0.142800')],[('CN2.mgt', '0.09017')]
答案 0 :(得分:3)
path1 = 'P:/folder1/best_par.txt'
path2 = 'P:/folder2/best_par.txt'
paths = (path1, path2)
for i in paths:
inputfile = open(i)
text = inputfile.read()
cn2 = re.findall(r'(CN2\.mgt)\s+([-+]?[0-9]+\.[0-9]+)', text)
当你的循环第一次运行时,读取best_par并找到cn2。
现在,当循环继续运行时,找到第二个路径的cn2并覆盖第一个cn2。所以,只留下第二个cn2。
你应该做什么: -
path1 = 'P:/folder1/best_par.txt'
path2 = 'P:/folder2/best_par.txt'
paths = (path1, path2)
for i in paths:
inputfile = open(i)
text = inputfile.read()
print re.findall(r'(CN2\.mgt)\s+([-+]?[0-9]+\.[0-9]+)', text)
或: -
cn2 = []
path1 = 'P:/folder1/best_par.txt'
path2 = 'P:/folder2/best_par.txt'
paths = (path1, path2)
for i in paths:
inputfile = open(i)
text = inputfile.read()
cn2.append(re.findall(r'(CN2\.mgt)\s+([-+]?[0-9]+\.[0-9]+)', text))
for i in cn2:
print i
答案 1 :(得分:1)
你正在覆盖你的cn2变量,你应该在循环之外声明它并将所有结果附加到它。