← Все вопросы

Как прочитать файл и сразу убрать \n в конце каждой строки?

Задан 5 месяцев назад599 просмотров3 ответа
11

Читаю файл циклом for line in f: и в каждой строке висит лишний \n. Из-за этого сравнения ломаются и при печати лишние пустые строки. Как читать сразу без переноса?

3 ответа

18
✓ Принятый ответ — помог автору

Снимай перенос методом .rstrip('\n') (или просто .strip(), если по краям не важны пробелы):

with open('data.txt', encoding='utf-8') as f:
    for line in f:
        line = line.rstrip('\n')
        print(line)

rstrip('\n') лучше голого strip(), когда в строках значимы ведущие пробелы (например, отступы) — он трогает только переводы строк справа.

9

Если хочешь сразу список без \n:

lines = open('data.txt', encoding='utf-8').read().splitlines()

splitlines() режет по переносам и сами \n выкидывает.

Санчо Панчо splitlines ещё и \r\n из винды корректно съедает, удобно · 5 месяцев назад
-3

Замени все \n на пустую строку: line.replace('\n', '').

Олег Павлов replace выкосит ВСЕ переносы внутри, а не только хвостовой — для построчного чтения это лишнее, тут нужен rstrip('\n') · 5 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект