覆盖文件中的行而不创建“^M”字符
Overwrite line in a file without creating the "^M" character
假设我有 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 语句覆盖前一行文本,以便文本文件中的输出与控制台的输出相匹配?
您将不得不重写文件(即读入、替换行,然后写回)。或者,您可以只将要写入的内容存储到文件中(例如作为列表),根据需要进行修改,然后在完成后写入。
您也可以考虑分块编写:在部分还在变化的时候一次存储它们,然后一次写出它们(例如 10 或 100 行的块)。
假设我有 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 语句覆盖前一行文本,以便文本文件中的输出与控制台的输出相匹配?
您将不得不重写文件(即读入、替换行,然后写回)。或者,您可以只将要写入的内容存储到文件中(例如作为列表),根据需要进行修改,然后在完成后写入。
您也可以考虑分块编写:在部分还在变化的时候一次存储它们,然后一次写出它们(例如 10 或 100 行的块)。