Вопрос-Ответ

How can I read a text file into a string variable and strip newlines?

Как я могу преобразовать текстовый файл в строковую переменную и удалить новые строки?

У меня есть текстовый файл, который выглядит следующим образом:

ABC
DEF

Как я могу преобразовать файл в однострочную строку без перевода строк, в данном случае создав строку 'ABCDEF'?


Для чтения файла в виде списка строк, но с удалением завершающего символа перевода строки из каждой строки, см. Как прочитать файл без перевода строк?.

Переведено автоматически
Ответ 1

Вы могли бы использовать:

with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')

Или если содержимое файла гарантированно состоит из одной строки:

with open('data.txt', 'r') as file:
data = file.read().rstrip()
Ответ 2

В Python 3.5 или более поздней версии с помощью pathlib вы можете скопировать содержимое текстового файла в переменную и закрыть файл одной строкой:

from pathlib import Path
txt = Path('data.txt').read_text()

а затем вы можете использовать str.replace для удаления новых строк:

txt = txt.replace('\n', '')
Ответ 3

Вы можете читать из файла в одну строку:

str = open('very_Important.txt', 'r').read()

Пожалуйста, обратите внимание, что при этом файл явно не закрывается.

CPython закроет файл при завершении его работы как часть сборки мусора.

Но другие реализации Python этого не сделают. Чтобы написать переносимый код, лучше использовать with или явно закрыть файл. Короткий не всегда лучше. Смотрите, важно ли явное закрытие файлов?

Ответ 4

Чтобы объединить все строки в строку и удалить новые строки, я обычно использую:

with open('t.txt') as f:
s = " ".join([l.rstrip("\n") for l in f])
2024-01-01 08:23 python string