Как убрать символ новой строки (\n) при чтении строк из файла
При использовании file.readlines() получаем что-то вроде этого:
>>> file.readlines() ['12\n', '10\n', '9\n', '15\n', '10\n', '120']
Как убрать \n ?
Отслеживать
8,602 4 4 золотых знака 30 30 серебряных знаков 53 53 бронзовых знака
задан 30 ноя 2016 в 19:06
user216622 user216622
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
>>> l = ['12\n', '10\n', '9\n', '15\n', '10\n', '120'] >>> l = [line.rstrip() for line in l] >>> l ['12', '10', '9', '15', '10', '120']
Отслеживать
ответ дан 30 ноя 2016 в 19:38
1,981 12 12 серебряных знаков 23 23 бронзовых знака
стоит заметить, что .rstrip() также удаляет любой пробел в конце строки, а не только символы новой строки как .rstrip(‘\n’) (это может и быть желаемым поведением).
Как удалить \n\r из документа?

С помощью Python закидываю данные в текстовый документ, предварительно отформатировав его.
Получается такой текст:

Хочу убрать \n\r оставив просто \n, заменяю таким образом, в Notepad++ все работает норм:
Но когда пытаюсь исправить текст в Python до записи в документ, ничего не происходит. Пробовал таких два варианта:
articleContent = articleContent.replace('\n\r', '\n') #или это articleContent = articleContent.replace('\n\r', '')

P.S. Может быть это как-то связано с самим Notepad? Т.к. при копирование этих строк в другое место, он делает некоторые изменения:
- Вопрос задан более трёх лет назад
- 823 просмотра
Удаление разрывов строк в Python
Если у вас возникла необходимость используя Python удалить разрывы строк из текста, то можно воспользоваться следующим методом текстовой переменной:
Метод replace заменяет в строке все вхождения подстроки old на подстроку new. Если методу replace задать еще один параметр count то заменены будут не все вхождения, а только первые count из них.
Существуют следующие типы разрывов строк:
Пример удаления разрывов строк в Python:
-
//Удаление всех трех типов разрывов строк
string = string.replace(«\r»,»»)
string = string.replace(«\n»,»»)
Python-сообщество
![]()
- Начало
- » Python для новичков
- » Удалить символ переноса строки
#1 Июнь 18, 2012 00:16:23
Serbis От: Зарегистрирован: 2012-02-13 Сообщения: 38 Репутация: 0 Профиль Отправить e-mail
Удалить символ переноса строки
Совершенно идиотский вопрос. Из файла readlines выбирает все строки, но после каждой ставит \n. Так как это служебный символ replace(r’\n’, ») ничего не дает, злополучный перевод строки остается на своем месте. Как блин его удалить?
[‘\xd0\x9c\xd0\xb8\xd0\xbb\xd0\xbb\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 003\n‘, ‘\xd0\xa1\xd0\xb0\xd0\xbd\xd1\x82\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 004\n‘, ‘\xd0\x94\xd0\xb5\xd1\x86\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 005\n‘, ‘\xd0\x9c\xd0\xb5\xd1\x82\xd1\x80 — 006\n‘, ‘\xd0\x9a\xd0\xb2\xd0\xb0\xd0\xb4\xd1\x80\xd0\xb0\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbc\xd0\xb8\xd0\xbb\xd0\xbb\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 050\n‘, ‘\xd0\x9a\xd0\xb2\xd0\xb0\xd0\xb4\xd1\x80\xd0\xb0\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd1\x81\xd0\xb0\xd0\xbd\xd1\x82\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 051\n‘, ‘\xd0\x9a\xd0\xb2\xd0\xb0\xd0\xb4\xd1\x80\xd0\xb0\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xb4\xd0\xb5\xd1\x86\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80 — 053\n‘ ну и т. д.
#2 Июнь 18, 2012 00:24:40
fata1ex От: Зарегистрирован: 2009-07-11 Сообщения: 732 Репутация: 52 Профиль Отправить e-mail
Удалить символ переноса строки
[01:23] home:~/dev cat in
1
2
3
4
5
6
>>> map(lambda s: s.replace('\n', ''), open('in', 'r').readlines()) ['1', '2', '3', '4', '5', '6']
>>> map(lambda s: s[:-1], open('in', 'r').readlines()) ['1', '2', '3', '4', '5', '6']
>>> map(lambda s: s.rstrip(), open('in', 'r').readlines()) ['1', '2', '3', '4', '5', '6']
Отредактировано fata1ex (Июнь 18, 2012 00:26:52)
#3 Июнь 18, 2012 01:10:36
py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9698 Репутация: 842 Профиль Отправить e-mail
Удалить символ переноса строки
>>> with open('/etc/passwd') as fin: . lines = fin.read().splitlines() . >>> lines[:3] ['root:x:0:0:root:/root:/bin/bash', 'bin:x:1:1:bin:/bin:/sbin/nologin', 'daemon:x:2:2:daemon:/sbin:/sbin/nologin'] >>>
#4 Июль 1, 2012 04:34:39
odnochlen Зарегистрирован: 2012-06-28 Сообщения: 794 Репутация: 14 Профиль Отправить e-mail
Удалить символ переноса строки
Serbis
Так как это служебный символ replace(r’\n’, ») ничего не дает,

Коллективный тупняк?
replace('\n', '')