Python实现:如何向文本文件指定行追加审核状态
问题解决:给对应评论行添加审核状态
原代码的问题很明确:你用了"a"(追加)模式写入文件,不管什么时候写,内容都会直接加到文件最后,而且没对应到具体行做修改。
简单解决方案是:先把所有行读进内存,审核时直接修改内存里的对应行数据,等全部审核完,再把整个内容写回文件。
修改后的代码如下:
def review_comments(): # 读取所有行并保存到列表 with open("data.txt", "r") as textfile: lines = textfile.read().splitlines() line_idx = 0 total_lines = len(lines) while line_idx < total_lines: # 拆分当前行的用户和评论 user, comment = lines[line_idx].split(";") # 显示待审核内容 choice = input(f"审核[{user}: {comment}] - 输入g通过/a拒绝: ") # 更新当前行,添加审核状态 if choice == "g": lines[line_idx] = f"{user};{comment};approved" elif choice == "a": lines[line_idx] = f"{user};{comment};disapproved" else: print("输入无效,请输入g或a") continue # 不切换到下一行,重新审核当前内容 line_idx += 1 # 把修改后的所有行写回文件 with open("data.txt", "w") as textfile: textfile.write("\n".join(lines)) return "审核完成" print(review_comments())
关键修改点:
- 一次性读取所有行到
lines列表,后续直接修改列表里的元素,对应原文件的每一行。 - 审核时直接更新
lines中对应索引的行,把审核状态拼接到行尾。 - 最后用
"w"模式(覆盖写入)把整个修改后的列表写回文件,确保每一条评论的审核状态都紧跟在自己的行后面。
内容的提问来源于stack exchange,提问作者pipo
相关产品推荐
相关产品推荐

