比较两个文本文件,将第一个文件中包含字符串的行替换为第二个fi中的行

2024-07-05 14:23:50 发布

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

我试图用文件2中更正的值替换文件1中有“错误”的行(见下文)。在

文件1:

MAGA 0.0159
TTKI error
MCCN 0.0391
NEFD 0.9982
ESYA error

文件2:

^{pr2}$

期望输出:

MAGA 0.0159
TTKI 0.7652
MCCN 0.0391
NEFD 0.9982
ESYA 0.5517

下面是我一直在努力做到这一点,但我认为我已经走得太远了,在过去的一个小时里,我越来越沮丧,所以任何帮助都将不胜感激。在

section2 = []

f2 = open('file2', 'r')

for line2 in f2:
    section2.append(str(line2.split(' ',0)))

f1 = open('file1', 'r')

for line1 in f1:
    if str(section2[0]) in line1:
        print section2[0]
    else:
        print line1

Tags: 文件inforerroropenf2strline1
3条回答

使用字典而不是数组:

corrections = {}

f2 = open('file2.txt', 'r')

for line2 in f2:
    (key, value) = line2.split(' ')
    corrections[key] = value

f1 = open('file1.txt', 'r')

for line1 in f1:
    (key, value) = line1.split(' ')
    if key in corrections:
        print(key, corrections[key])
    else:
        print(line1)

以下是您的字典在读取更正文件后的外观:

^{pr2}$

file1被读取时,行也被拆分,只是为了检查第一个值是否是字典中的键之一(key in corrections)。如果不是,则只打印原始行(即使它包含error)。但是如果我们有一个更正,它会被打印出来(print (key, corrections[key])。这里我们使用print在其参数之间插入一个空格。在

您可以创建一个正确值的dict

dict2 = {}
for line in f2:
   key, value = line.split(' ')
   dict2[key] = value

然后呢

^{pr2}$

简单的逻辑是:

打开第二个文件并从中创建词典。 读取文件1行/行 在线搜索错误, 如果找到 获取错误行的第一个字 从字典中得到相应的值 将错误替换为您得到的值 将该行写入第三个文件

相关问题 更多 >