如何用Python修改文本文件中指定键的对应值
解决Python修改文本文件指定键对应值的问题
问题分析
你当前的代码错误在于直接替换了键名Status,而非它对应的空值,而且循环读取时还误用了未定义的变量f。下面提供两种可靠的解决方法:
方法一:直接字符串替换(适合简单固定格式)
如果你的passenger.txt内容格式固定,仅需替换Status的空值,直接针对目标字符串片段替换即可:
passenger_db = "passenger.txt" # 读取文件全部内容 with open(passenger_db, "r") as file: content = file.read() # 精准替换Status对应的空值 updated_content = content.replace("'Status':''", "'Status':'Sometext'") # 将修改后的内容写回文件 with open(passenger_db, "w") as file: file.write(updated_content)
方法二:解析为字典修改(更稳妥通用)
如果后续需要修改多个键,或文件格式可能有细微变动,建议把文本解析为Python字典操作,再写回文件:
import ast passenger_db = "passenger.txt" # 读取文件并解析为字典(用ast.literal_eval比eval更安全) with open(passenger_db, "r") as file: content = file.read() passenger_dict = ast.literal_eval(content) # 修改指定键的值 passenger_dict['Status'] = 'Sometext' # 将字典转回字符串并写回文件 with open(passenger_db, "w") as file: file.write(str(passenger_dict))
原代码的问题说明
- 循环读取时使用了未定义的变量
f,应该用打开的文件对象file; replace('Status', 'Sometext')会直接替换所有Status字符串,导致键名被修改,而非目标值。
内容的提问来源于stack exchange,提问作者Kilmton Starvy
相关产品推荐
相关产品推荐

