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

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

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

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

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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

Ответ 1

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

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

Ответ 2

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

with open('data.txt', 'r') as myfile:
  data = myfile.read()

Ответ 3

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

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

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

CPython закроет файл, когда он выйдет из коллекции мусора.

Но других реализаций python не будет. Для того, чтобы писать переносимый код, то лучше использовать with или закрыть файл в явном виде. Короткая не всегда лучше. См. fooobar.com/questions/14635/...

Ответ 4

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

with open('t.txt') as f:
  s = " ".join([x.strip() for x in f]) 

Ответ 5

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

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

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

txt = txt.replace('\n', '')

Ответ 6

with open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

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

Ответ 7

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

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

Или, поскольку сам режим по умолчанию - 'r' (чтение), просто используйте,

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

Ответ 8

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

with open("myfile.txt") as f:
    file_content = f.read().rstrip("\n")
    print file_content

Ответ 9

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

with open ("data.txt", "r") as myfile:
    data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])

Ответ 10

Вы также можете разделить каждую строку и объединить в конечную строку.

myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
    data = data + line.strip();

Это тоже будет хорошо.

Ответ 11

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

_ = open('data.txt', 'r'); data = _.read(); _.close()

Ответ 12

f = open('data.txt','r')
string = ""
while 1:
    line = f.readline()
    if not line:break
    string += line

f.close()


print string

Ответ 13

Я удивлен, что никто не упоминал splitlines().

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

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Обратите внимание, что нет новых строк (\n).

В этот момент кажется, что вы хотите распечатать строки на консоли, которые вы можете добиться с помощью цикла for:

for line in data:
    print line

Ответ 14

вы можете сжать это в один на две строки кода !!!

content = open('filepath','r').read().replace('\n',' ')
print(content)

если ваш файл читает:

hello how are you?
who are you?
blank blank

вывод python

hello how are you? who are you? blank blank

Ответ 15

Я не чувствую, что кто-то обращался к [] части вашего вопроса. Когда вы читаете каждую строку в своей переменной, потому что перед заменой \n на "несколько" было несколько строк, вы создали список. Если у вас есть переменная x и распечатайте ее только на

x

или print (x)

или str (x)

Вы увидите весь список с помощью скобок. Если вы вызываете каждый элемент (массив сортировок)

х [0] то он опускает скобки. Если вы используете функцию str(), вы увидите только данные, а не "". ул (х [0])

Ответ 16

python3: Google "list comphrension", если синтаксис с квадратной скобкой является новым для вас.

 with open('data.txt') as f:
     lines = [ line.strip( ) for line in list(f) ]

Ответ 17

Вы пробовали это?

x = "yourfilename.txt"
y = open(x, 'r').read()

print(y)

Ответ 18

Это работает: Измените свой файл на:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

Тогда:

file = open("file.txt")
line = file.read()
words = line.split()

Создает список с именем words, который равен:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Это избавилось от "\n". Чтобы ответить на вопрос о скобках на вашем пути, просто сделайте следующее:

for word in words: # Assuming words is the list above
    print word # Prints each word in file on a different line

Или:

print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space

Это возвращает:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

Ответ 19

with open(player_name, 'r') as myfile:
 data=myfile.readline()
 list=data.split(" ")
 word=list[0]

Этот код поможет вам прочитать первую строку, а затем с помощью опции списка и разделения вы можете преобразовать первое строковое слово, разделенное пробелом, которое будет сохранено в списке.

Чем вы можете легко получить доступ к любому слову или даже сохранить его в строке.

Вы также можете сделать то же самое с помощью цикла for.

Ответ 20

file = open("myfile.txt", "r")
lines = file.readlines()
str = ''                                     #string declaration

for i in range(len(lines)):
    str += lines[i].rstrip('\n') + ' '

print str

Ответ 21

Может быть, вы могли бы попробовать это? Я использую это в своих программах.

Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
    data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()

Ответ 22

Регулярное выражение тоже работает:

import re
with open("depression.txt") as f:
     l = re.split(' ', re.sub('\n',' ', f.read()))[:-1]

print (l)

['I', 'feel', 'empty', 'and', 'dead', 'inside']