Как удалить ^ M - PullRequest
       75

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

9 голосов
/ 07 июля 2010

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

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

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

Ответы [ 6 ]

9 голосов
/ 07 июля 2010

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

5 голосов
/ 07 июля 2010

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 голосов
/ 09 июля 2010

dos2unix filename.py

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

1 голос
/ 28 февраля 2013

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

Ужасно, но ни r +, ни r + b, ни НИЧЕГО не работает (для меня, конечно): (

0 голосов
/ 28 мая 2016

запустить autopep8 для файла

> apt-get install python-autopep8

> autopep8 python_file_name > new_python_file_name.py
0 голосов
/ 05 июля 2015

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

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