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

2024-04-19 17:06:26 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我尝试查看位于不同文件夹中的多个文本文件:

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

Tags: texttxt文件夹bestpaths文本文件parinputfile
2条回答

如果要覆盖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 = re.findall(r'(CN2\.mgt)\s+([-+]?[0-9]+\.[0-9]+)', text)

当您的循环第一次运行时,将读取path1 best\u 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

相关问题 更多 >