【问题标题】:How to search and replace in a file using python [duplicate]如何使用python在文件中搜索和替换[重复]
【发布时间】:2013-05-10 15:39:56
【问题描述】:

我在 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 中没有发生替换。如果有人有任何线索,请告诉我

【问题讨论】:

  • 您要替换确切的单词还是任何子字符串?因为r'samuel' 也会为asamuela 返回True。

标签: python


【解决方案1】:

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

要替换文件中的数据,就地,使用fileinput module会更容易:

import fileinput

for line in fileinput.input('names.txt', inplace=True):
    line = line.replace('samuel', 'boxer')
    print line.strip()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2011-03-10
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多