我试图替换file1中有错误的行'来自file2的更正值(见下文)。
文件1:
MAGA 0.0159
TTKI error
MCCN 0.0391
NEFD 0.9982
ESYA error
file2的:
TTKI 0.7652
ESYA 0.5517
期望的输出:
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
答案 0 :(得分:1)
您可以创建正确值的dict
dict2 = {}
for line in f2:
key, value = line.split(' ')
dict2[key] = value
然后
for line1 in f1:
key, value = line1.split(' ')
if value == 'error':
print(key, dict2[key])
else:
print(line1)
答案 1 :(得分:1)
使用字典而不是数组:
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)
这是您的字典在读取更正文件后的样子:
{'TTKI': '0.7652', 'ESYA': '0.5517'}
当读取file1
时,也会拆分行以检查第一个值是否是字典中的一个键(key in corrections
)。如果不是,则只打印原始行(即使它包含error
)。但如果我们进行了修正,则会打印出来(print (key, corrections[key]
)。这里我们使用print
在其参数之间插入空格的事实。
答案 2 :(得分:1)
这是一个简单的逻辑:
打开第二个文件并从中创建一个字典。 读取file1行/行 在线搜索错误, 如果发现 得到第一个错误行 从字典中获取相应的值 将错误替换为您获得的值 将该行写入第3个文件
答案 3 :(得分:1)
parfor ii =1 :100
T {ii,:}=normxcorr2(template{:} ,image{ii});
end