如何替换文本文件中的第一列?

时间:2016-03-10 14:39:20

标签: python

我有这样的文件

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个。

2 个答案:

答案 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)