Как прочитать текстовый файл в строковую переменную в Python
Я использую следующий фрагмент кода для чтения файла в Python
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
входной файл
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
и когда я печатаю данные, я получаю
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNNn', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
как я вижу данные в виде списка. Как мне сделать это строка. А также Как удалить из него символы" n", " ["и"]"?
20 ответов:
вы могли бы использовать:
with open('data.txt', 'r') as myfile: data=myfile.read().replace('\n', '')
Вы можете прочитать из файла в одну строку:
str = open('very_Important.txt', 'r').read()обратите внимание, что это не явно закрыть файл.
CPython закроет файл, когда он выйдет как часть сборки мусора.
но другие реализации Python не будет. Писать переносимый код, лучше использовать
withили закрыть файл явно. Короткий не всегда лучше. См.https://stackoverflow.com/a/7396043/362951
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
Comments
<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>