0

我在 names.txt 中有一个这样的文本文件:

My name is alex
My name is samuel

我只想用拳击手代替塞缪尔

我的代码是:

#!/usr/bin/python

import re

f = open("names.txt",'r+')
for line in f:
  if re.search(r'samuel',line,re.I):
     print line
     m=f.write(line.replace("samuel",'boxer'))
f.close()

即使 Print line 正在正确打印该行,但在 names.txt 中没有发生替换。让我知道是否有人有任何线索

4

1 回答 1

3

在这里使用正则表达式是多余的。.replace()如果替换文本根本不存在,则返回未更改的行,因此甚至不需要测试。

fileinput要替换文件中的数据,使用模块更容易:

import fileinput

for line in fileinput.input('names.txt', inplace=True):
    line = line.replace('samuel', 'boxer')
    print line.strip()
于 2013-05-10T15:44:19.483 回答