Как прочитать текстовый файл в строковую переменную и удалить символы новой строки? - PullRequest
809 голосов
/ 03 декабря 2011

Я использую следующий сегмент кода для чтения файла в Python:

with open ("data.txt", "r") as myfile:
    data=myfile.readlines()

Входной файл:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

и когда я печатаю данные, я получаю

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Как я вижу, данные в list форме. Как сделать строку? А также как мне удалить из нее символы "\n", "[" и "]"?

Ответы [ 21 ]

1101 голосов
/ 03 декабря 2011

Вы можете использовать:

with open('data.txt', 'r') as file:
    data = file.read().replace('\n', '')
562 голосов
/ 18 апреля 2013

использовать read (), а не readline ()

with open('data.txt', 'r') as myfile:
  data = myfile.read()
58 голосов
/ 03 декабря 2015

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

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

Обратите внимание, что это не закрывает файл явно.

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

Но другие реализации Python не будут. Для написания переносимого кода лучше использовать with или явно закрывать файл. Короткая не всегда лучше. Смотри https://stackoverflow.com/a/7396043/362951

42 голосов
/ 21 марта 2015

Простой способ:

file = open('data.txt', 'r')
text = file.read().strip()
file.close()

Использование with (рекомендуется):

with open('data.txt', encoding='utf8') as f:
    text = f.read().strip()

Примечание: with автоматически закрывает файл .

29 голосов
/ 03 декабря 2011
with open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

join () присоединится к списку строк, а rstrip () без аргументов обрежет пробелы, включая переводы строк, с конца строк.

27 голосов
/ 29 марта 2018

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

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

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

txt = txt.replace('\n', '')
11 голосов
/ 16 ноября 2018

Это можно сделать с помощью метода read ():

text_as_string = open('Your_Text_File.txt', 'r').read()

Или в качестве самого режима по умолчанию «r» (чтение), поэтому просто используйте,

text_as_string = open('Your_Text_File.txt').read()
9 голосов
/ 28 апреля 2017

Я некоторое время возился с этим и предпочел использовать read в сочетании с rstrip. Без rstrip("\n") Python добавляет новую строку в конец строки, что в большинстве случаев не очень полезно.

with open("myfile.txt") as f:
    file_content = f.read().rstrip("\n")
    print file_content
6 голосов
/ 03 декабря 2011

Трудно точно сказать, к чему вы стремитесь, но что-то вроде этого должно привести вас к началу:

5 голосов
/ 23 августа 2018

Это однострочное копируемое решение, которое также закрывает файловый объект:

_ = open('data.txt', 'r'); data = _.read(); _.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...