Как удалить символ ^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))