从不同的文件夹python中读取多个文本文件

时间:2016-07-15 23:58:55

标签: python regex loops text

所以,我试图查看位于不同文件夹中的多个文本文件:

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')]

2 个答案:

答案 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变量,你应该在循环之外声明它并将所有结果附加到它。