如何删除^ M.

时间:2010-07-07 01:23:51

标签: python string end-of-line

如何从Python脚本中的文本文件(行尾)中删除^M字符?

我做了以下操作,每次换行都有^M

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

6 个答案:

答案 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