python - 如何更改文本文件中的特定字符串?
问题描述
好的,我正在编写一个程序来更改汽车的名称。例如,它将 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)
'''
解决方案
您将要使用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)
推荐阅读
- java - java.lang.IllegalStateException:您必须设置文本或视图
- reactjs - 以动态antd形式添加默认值
- html - iOS:删除 UIPageControl 中的填充
- apache - 使用 htacces 修改查询字符串值
- docker - 无法在 docker 中 ssh localhost
- distributed-system - raft 节点如何了解对等点?
- amazon-s3 - 自动更新程序不适用于 Amazon S3 私有存储桶
- flutter - 在 CupertinoPicker 和 CupertinoDatePicker 中选择 Value onTap
- python-3.x - 在 jupyter 终端中退出 powershell
- angular - Angular 6 - 安装 ng-recaptcha 给出错误 TS1005: ';' 预期的