Как удалить символ ^M
из текстового файла (в конце строки) в сценарии Python?Как удалить^M
Я сделал следующее, и в каждом перерыве есть ^M
.
file = open(filename, "w")
file.write(something)
Как удалить символ ^M
из текстового файла (в конце строки) в сценарии Python?Как удалить^M
Я сделал следующее, и в каждом перерыве есть ^M
.
file = open(filename, "w")
file.write(something)
Если вы пишете файл, вы должны указать open(filename, "wb")
. Таким образом, вы будете писать в двоичном режиме, и Python не будет пытаться определить правильные строки новой строки для вашей системы.
Спасибо за ваш ответ, но я пытаюсь написать «что-то» в файл, и кажется, что «универсальный режим новой строки» можно использовать только с 'rU', если я не ошибаюсь. В любом случае, это не работает для меня. – DGT
Python может открывать файл в двоичном режиме или в текстовом режиме. Текст по умолчанию, поэтому режим «w» означает запись в текстовом режиме. В текстовом режиме Python будет настраивать окончание строки для платформы, на которой вы находитесь. Это означает, что в Windows этот код:
f = open("foo.txt", "w")
f.write("Hello\n")
приведет к текстовому файлу, содержащему «Hello \ r \ n».
Вы можете открыть файл в двоичном режиме с использованием «Ъ» в режиме:
f = open("foo.txt", "wb")
f.write("Hello\n")
результаты в текстовый файл, содержащий «Hello \ N».
Собственно, это «что-то» происходит из html-формы textarea, где я копирую и вставляю «что-то». Затем скрипт получает значение: something = form["some_name"].value
–
DGT
dos2unix filename.py
преобразовать разрывы строк в стиле UNIX.
string.replace ('\ r', '') работал для меня.
Уродливый, но ни г +, ни г + б, ни больше ничего не работал (для меня, конечно) :(
Для переносимости, вы можете попробовать следующее
import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))
запустить autopep8 на файл
> apt-get install python-autopep8
> autopep8 python_file_name > new_python_file_name.py
Это не то, о чем он просит. Это также, вероятно, будет иметь и другие побочные эффекты; ответьте на вопрос, заданный с детальными и реальными решениями. – kevr
вы можете разместить больше от вашего кода ?. Dont't знает, где^M приходит. символа новой строки сделать и «\ п», не «^ M» Remeber для закрытия "file.close()" Не использовать файл зарезервированное слово в python использовать my_file или что-то в этом роде. – snippsat
@snippsat^M - это escape-символ терминала, который записывается как «\ n» в синтаксисе C –
@Pete:^M is '\ r' –