首页 > 解决方案 > 如何更改文本文件中的特定字符串?

问题描述

好的,我正在编写一个程序来更改汽车的名称。例如,它将 BMW 替换为我输入的新名称,而不更改任何其他细节。问题总是最终清空我的文本,我知道我正在使用写入模式。谁能告诉我如何修复此代码

这是我的文本文件 BMW,2011,Automatic,50000 的格式,

'''

old = input("Old Name: ")
new = input("New Name: ")
result = ""

with open('Cars.txt', 'r') as file:
    var = file.readlines()

for row in var:
    element = row.split(',')
    if old in element:
        element[0] = new
        row = ",".join(element)
        result += row

with open('Cars.txt', 'w') as file:
    Write = file.write(result)

'''

标签: pythonlisttext

解决方案


您将要使用open('Cars.txt', 'w')覆盖 Cars.txt。“a”代表“追加”,而“w”代表“写入”。您目前还一直在编辑索引 [0],而要替换的字符串所在的列表部分可能在任何地方!对此可能有更好的实现,但这些更改应该有效+说明我的观点。

old = input("Old Name: ")
new = input("New Name: ")
result = ""

with open('Cars.txt', 'r') as file:
    var = file.readlines()

for row in var:
    element = row.split(',')
    if old in element:
        element[element.index(old)] = new
        row = ",".join(element)
        result += row

with open('Cars.txt', 'w') as file:
    Write = file.write(result)

推荐阅读