如何从Python脚本中的文本文件(行尾)中删除^M
字符?
我做了以下操作,每次换行都有^M
。
file = open(filename, "w")
file.write(something)
答案 0 :(得分:9)
如果您正在编写该文件,则应指定open(filename, "wb")
。这样,您将以二进制模式编写,Python将不会尝试确定您所在系统的正确换行符。
答案 1 :(得分:5)
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”。
答案 2 :(得分:2)
dos2unix filename.py
将换行符转换为UNIX样式。
答案 3 :(得分:1)
string.replace('\ r','')为我工作。
丑陋,但也不是r +也不是r + b,也不是没有工作(对我来说,肯定):(
答案 4 :(得分:0)
为了便于携带,您可以尝试以下
import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))
答案 5 :(得分:-1)
在文件
上运行autopep8> apt-get install python-autopep8
> autopep8 python_file_name > new_python_file_name.py