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



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



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


входной файл



LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE


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



['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNNn', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']


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

1200   20  

20 ответов:

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

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

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

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

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

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

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

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

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

самый простой способ:

file = open('data.txt', 'r')
text = file.read().strip()
file.close()
with open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

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

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

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

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

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

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

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

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

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

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

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

Это также будет работать просто отлично.

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

f.close()


print string

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

x

или print (x)

или str (x)

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

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

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

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

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

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

переменная data теперь список, который выглядит так при печати:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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

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

for line in data:
    print line

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

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

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

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
with open(player_name, 'r') as myfile:
 data=myfile.readline()
 list=data.split(" ")
 word=list[0]

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

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

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

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

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

print str

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

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

print(y)

Comments

  1. Скандинавия Хаус
    Скандинавия Хаус 3 года назад
    <p>Получилось прочитать скрипт SQL для выборки из БД Oracle после указания транскрипции:</p>

    <pre>
    with open('Имя_файла.txt', mode='r', encoding='utf-8') as s:
    t = s.read().strip()
    s.close()</pre>

    <p><a href="https://scandinaviahouse.ru" title="Строительство Татарстан Казань Ижевск">Дома, лестницы</a></p>