Как убрать n python при чтении из файла
Перейти к содержимому

Как убрать n python при чтении из файла

  • автор:

Как убрать символ новой строки (\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 из документа?

5f2a8d2bd78bb018513515.png

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

5f2a8dd253e74572815879.png

Хочу убрать \n\r оставив просто \n, заменяю таким образом, в Notepad++ все работает норм:

Но когда пытаюсь исправить текст в Python до записи в документ, ничего не происходит. Пробовал таких два варианта:

articleContent = articleContent.replace('\n\r', '\n') #или это articleContent = articleContent.replace('\n\r', '')

5f2a90af56f5b661924640.png

P.S. Может быть это как-то связано с самим Notepad? Т.к. при копирование этих строк в другое место, он делает некоторые изменения:

  • Вопрос задан более трёх лет назад
  • 823 просмотра

Удаление разрывов строк в Python

Если у вас возникла необходимость используя Python удалить разрывы строк из текста, то можно воспользоваться следующим методом текстовой переменной:

Метод replace заменяет в строке все вхождения подстроки old на подстроку new. Если методу replace задать еще один параметр count то заменены будут не все вхождения, а только первые count из них.

Существуют следующие типы разрывов строк:

Пример удаления разрывов строк в Python:

    //Удаление всех трех типов разрывов строк
    string = string.replace(«\r»,»»)
    string = string.replace(«\n»,»»)

Python-сообщество

[RSS Feed]

  • Начало
  • » 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', '') 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *