python - 替换文本文件中的单词并将其写入python中的新文件

标签 python text line

所以我有一个包含以下内容的文本文件:

NUM,123
FRUIT
DRINK
FOOD,BACON
CAR
NUM,456
FRUIT
DRINK
FOOD,BURGER
CAR
NUM,789
FRUIT
DRINK
FOOD,SAUSAGE
CAR

我正在用“PIZZA”替换“BURGER”这个词

with open('input.txt','r') as f:
    data = f.readlines()
    for i, line in enumerate(data):
        if '456' in line:
            field = ','.join(data[i+3].split(',')[1])
            field = field.replace(field,'PIZZA')

如何将所有内容写回新文件,以便在新文件中包含:

NUM,123
FRUIT
DRINK
FOOD,BACON
CAR
NUM,456
FRUIT
DRINK
FOOD,PIZZA
CAR
NUM,789
FRUIT
DRINK
FOOD,SAUSAGE
CAR

谢谢!

最佳答案

你已经很接近了,请尝试以下操作:

with open('input.txt','r') as f:
    data = f.readlines()

with open('output.txt','w') as f:
    for i, line in enumerate(data):
        if '456' in line:
            fields = data[i+3].split(',')
            fields[-1] = 'PIZZA\n'
            data[i+3] = ','.join(fields)
        f.write(line)

关于python - 替换文本文件中的单词并将其写入python中的新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12082631/

相关文章:

ios - 文本在框架中未正确缩放

c - 由于 MessageBoxEx 导致程序崩溃

opengl - GLSL 几何着色器替换 glLineWidth

python - Django 管理员在 mysql 中进行了很多重复查询

python - python 中描述符概念的行为(令人困惑)

javascript - 用JS修改链接标题

java - Java 中的 XML 文件解析显示错误详细信息

Three.js 放置一个通过直线垂直的平面

python - 带有 if 循环的套接字不会给出一致的结果

Python:下标一个模块