如何移除^M

13 投票
8 回答
30295 浏览
提问于 2025-04-16 00:54

我该怎么在Python脚本中把文本文件末尾的^M字符去掉呢?

我做了以下操作,但每一行的换行符后面都有^M

file = open(filename, "w")
file.write(something)

8 个回答

6

我用string.replace('\r', '')这个方法解决了问题。

虽然这个方法看起来不太好,但我试过的其他方法,比如r+、r+b,还有其他的,都没用(对我来说,确实如此) :(

6

Python可以以二进制模式或文本模式打开文件。默认情况下是文本模式,所以用“w”表示的是以文本模式写入。在文本模式下,Python会根据你所使用的操作系统调整行结束符。这意味着在Windows系统上,下面这段代码:

f = open("foo.txt", "w")
f.write("Hello\n")

会生成一个包含“Hello\r\n”的文本文件。

如果你想以二进制模式打开文件,可以在模式中加上“b”:

f = open("foo.txt", "wb")
f.write("Hello\n")

这样生成的文本文件就会包含“Hello\n”。

9

如果你要写文件,应该用 open(filename, "wb") 这个方式打开文件。这样的话,你就是在用二进制模式写文件,Python就不会试着去判断你所在系统的换行符是什么了。

撰写回答