首页 > 解决方案 > Python - 从文本文件中读取行,更新行的子字符串并写入新的文本文件

问题描述

我有一个读取文本文件的功能,逐行搜索,如果该行包含关键字,比较它的值并更新值但是,当我尝试writelines新的文本文件时,没有进行更改,这是我的代码:

with open(oldfile, 'r') as file :
    filedata = file.readlines()

for line in filedata:
    if "keyword" in line:
        value = line.strip().split(' | ')[-1]
        print(value)
        if value != '0x00':
            print('replacing value')
            line = line.replace(value, '0x00')
            print(line)

with open(newfile, 'w') as file:
    file.writelines(filedata)

旧文本文件示例:

keyword | 0x01
random | 0x01
random2 | 0x01

新的文本文件仍然包含

keyword | 0x01

想知道我在这里做错了什么

标签: python

解决方案


with open("text", 'r') as file :
    filedata = file.readlines()
newlines = []
for line in filedata:
    if "keyword" in line:
        value = line.strip().split(' | ')[-1]
        print(value)
        if value != '0x00':
            print('replacing value')
            line = line.replace(value, '0x00')
            print(line)
        newlines.append(line)

with open("text2", 'w') as file:
    file.writelines("\n".join(newlines))

python 将line其视为字符串,而不是指向字符串的指针。


推荐阅读