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

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

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

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

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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

Ответы [ 21 ]

4 голосов
/ 26 апреля 2015

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

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

Это также сработает.

2 голосов
/ 03 декабря 2011
f = open('data.txt','r')
string = ""
while 1:
    line = f.readline()
    if not line:break
    string += line

f.close()


print string
2 голосов
/ 30 июля 2018

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

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
2 голосов
/ 08 февраля 2018

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

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

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Обратите внимание, что естьбез перевода строки (\n).

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

for line in data:
    print line
1 голос
/ 06 марта 2015

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

х

или печать (х)

или стр. (Х)

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

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

1 голос
/ 16 ноября 2017

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

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

print(y)
1 голос
/ 16 ноября 2016

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

 with open('data.txt') as f:
     lines = [ line.strip( ) for line in list(f) ]
0 голосов
/ 13 июня 2016
file = open("myfile.txt", "r")
lines = file.readlines()
str = ''                                     #string declaration

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

print str
0 голосов
/ 20 мая 2015

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

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
0 голосов
/ 03 июля 2019

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

Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
    data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...