覆盖文件中的行而不创建“^ M”字符

时间:2016-04-26 03:50:04

标签: python text-files carriage-return

说我有python代码:

print("1")
print("2")
print("3")
print("go")

会产生结果:

1
2
3
go

如果我想覆盖打印的最后一行,我会做类似的事情:

print("\rJohn Cena")

这将打印到控制台,

1
2
3
John Cena

但是,如果我使用>将该输出传送到文本文件,则文本文件将显示为

1
2
3
go^MJohn Cena

如何使用print语句覆盖上一行文本,以便文本文件中的输出与控制台的输出相匹配?

1 个答案:

答案 0 :(得分:2)

您必须重新写入该文件(即读取它,替换该行,然后将其写回)。或者,您可以将要写入的内容存储到文件中(例如,作为列表),根据需要进行修改,然后在完成后写入。

您还可以考虑以块的形式编写:在它们仍在变化时一次存储部分,然后立即将它们写出来(例如10或100行的块)。