如何替换文本文件中的某些文本部分?

时间:2016-03-22 17:49:37

标签: python string replace text-files

我需要读取文本文件中的每一行,并用字符串" + 44"替换每一行。使用" 0" ...基本上替换" + 44"用" 0"但保持线的其余部分完全相同

我的代码:

f = open("Pajanimals.txt",'r')

for line in f:
    if '+44' in line:

3 个答案:

答案 0 :(得分:2)

检查每一行是没有意义的 - 只需一次性更换所有内容:

path = 'Pajanimals.txt'
try:
    with open(path, 'r') as infile:
        data = infile.read().replace('+44', '0')
except OSError as exception:
    print('ERROR: could not read file:')
    print('  %s' % exception)
else:
    with open(path, 'w') as outfile:
        outfile.write(data)

答案 1 :(得分:0)

您可以在此处使用string.replace

for line in f:
    new_number = line.replace("+44", "0")

如果你做的事情比较复杂,我可能会推荐一个正则表达式,但你的情况很简单。

此处唯一需要注意的是,替换将所有它找到的实例,因此"+44123+44"将成为"01230",但有一个maxreplace参数可用于将它限制在第一个实例:

line.replace("+44", "0", 1)

"+44123+44"转换为"0123+44"

答案 2 :(得分:0)

试试这个:

f = open('Pajanimals.txt','rt')
lines = f.readlines()
f.close()

f = open('Pajanimals.txt','wt')
f.writelines([line.replace('+44','0') for line in lines])
f.close()