Python循环遍历k值修改TXT文件前两行的代码修正方法
代码修改方案
原代码存在的问题
- 缩进不符合Python语法要求,for循环下的逻辑块没有缩进
- 以只读模式
r打开文件,无法执行写入修改操作,且Python的文件对象没有replace内置方法 - 仅写了第二行的修改逻辑,没有处理第一行的替换,修改后的内容也没有写回文件
- 不需要手动调用
file.close(),with上下文管理器会在代码块执行结束后自动关闭文件
修改后可运行代码
import numpy as np # 替换为你实际的TXT文件路径 file_name = "target_file.txt" for k in np.arange(200, 600, 5.5): # 读取文件全部内容 with open(file_name, "r", encoding="utf-8") as f: lines = f.readlines() # 替换前两行,末尾加\n保留换行格式,避免内容拼接 lines[0] = f'/OutputFile = {k}\n' lines[1] = f'/BeamEnergy = {k}\n' # 覆盖写入修改后的全部内容 with open(file_name, "w", encoding="utf-8") as f: f.writelines(lines) # 若每次替换后需要执行其他操作(比如调用程序读取该TXT),可在此处添加对应逻辑
补充说明
注意:如果你的目标TXT文件本身不足2行,运行会报索引错误,建议先确认文件行数符合要求
如果不需要每次覆盖同一个文件,而是生成不同的带k值标识的新文件,只需要把写入的文件名改为f"output_{k}.txt"格式即可。
内容的提问来源于stack exchange,提问作者Jae Hyun Park
相关产品推荐
相关产品推荐

