如何移除^M
我该怎么在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就不会试着去判断你所在系统的换行符是什么了。