我有这样的文件
6 5 1 2.364 0.022
6 5 2 30.364 2.866
6 5 5 2.351 0.022
6 5 6 44.606 2.866
6 6 1 2.372 0.022
6 6 2 33.290 2.866
6 6 5 2.290 0.022
6 6 6 43.799 2.866
6 7 1 2.414 0.022
6 7 2 37.071 2.866
6 7 5 2.281 0.022
我想将6改为1.我想到了
line.contains
但其他列中也出现了6个。
答案 0 :(得分:3)
我建议使用sed
代替Python。
sed -e 's/^6/1/' input.txt > output.txt
答案 1 :(得分:2)
import re
with open(...) as f:
print re.sub('^6', '1', f.read(), flags=re.MULTILINE)
s = '''6 5 1 2.364 0.022
6 5 2 30.364 2.866
6 5 5 2.351 0.022
6 5 6 44.606 2.866
6 6 1 2.372 0.022
6 6 2 33.290 2.866
6 6 5 2.290 0.022
6 6 6 43.799 2.866
6 7 1 2.414 0.022
6 7 2 37.071 2.866
6 7 5 2.281 0.022'''
import re
print re.sub('^6', '1', s, flags=re.MULTILINE)
如果你不想使用re
,你可以试试(虽然我建议使用re
):
lines = []
for line in open(...):
parts = line.split()
parts[0] = '1'
lines.append('\t'.join(parts))
print '\n'.join(lines)
或:
lines = []
for line in open(...):
lines.append(line.replace('6', '1', 1))
print '\n'.join(lines)