如何在Python中替换大字符串的一部分?

时间:2011-05-18 02:02:54

标签: python

我有一个包含多行的文件,每行都有很长的字符序列(没有空格)。

例如,在一行中:

qwerrqweqweasdqweqwe * replacethistext * asdasdasd

qwerrqweqweasdqweqwe * withthistext * asdasdasd

我正在寻找的特定字符串可以发生在某一行中的任何位置。

我将如何做到这一点?

由于

4 个答案:

答案 0 :(得分:7)

>>> s = 'qwerrqweqweasdqweqwe*replacethistext*asdasdasd'
>>> s.replace('*replacethistext*', '*withthistext*')
'qwerrqweqweasdqweqwe*withthistext*asdasdasd'

答案 1 :(得分:1)

import string
for line in file:
    print string.replace(line, "replacethistext", "withthistext")

答案 2 :(得分:1)

line = "qwerrqweqweasdqweqwe*replacethistext*asdasdasd"
line = line.replace("*replacethistext*", "*withthistext*")

您可以使用任何字符串执行此操作。如果您需要使用regexp进行替换,请使用re.sub()。请注意,两者都不会发生,因此您必须将结果分配给变量(在本例中为原始字符串)。

使用文件IO和所有内容:

with open(filename, 'r+') as f:
    newlines = [] 
    for line in f:
        newlines.append(line.replace(old, new))
    # Do something with the new, edited lines, like write them to the file

答案 3 :(得分:1)

fp = open(filename, 'r')
outfp = open(outfilename, 'w')
for line in fp:
    outfp.write(line.replace('*replacethistext*', '*withthistext*'))
fp.close()
outfp.close()