← Все вопросы
Как прочитать файл и сразу убрать \n в конце каждой строки?
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 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.