Как удалить ^ M

Как удалить символ ^M из текстового файла (в конце строки) в Python script?

Я сделал следующее, и есть ^M в каждом прерывании строки.

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

Ответ 1

Если вы пишете файл, вы должны указать open(filename, "wb"). Таким образом, вы будете писать в двоичном режиме, и Python не будет пытаться определить правильные строки новой строки для вашей системы.

Ответ 2

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".

Ответ 3

dos2unix filename.py

чтобы преобразовать разрывы строк в стиль UNIX.

Ответ 4

string.replace('\ r', '') работал у меня.

Уродливый, но ни r +, ни r + b, ни NOTHING ELSE не работал (для меня, конечно): (

Ответ 5

Для переносимости вы можете попробовать следующие

import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))

Ответ 6

запустите autopep8 в файле

> apt-get install python-autopep8

> autopep8 python_file_name > new_python_file_name.py