Ответ 1
Вы можете использовать:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
Я использую следующий сегмент кода для чтения файла в Python:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
Входной файл:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
и когда я печатаю данные, я получаю
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Как я вижу, данные в форме list
. Как сделать строку? А также, как мне удалить символы "\n"
, "["
и "]"
из него?
Вы можете использовать:
with open('data.txt', 'r') as file:
data = file.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
или закрыть файл в явном виде. Короткая не всегда лучше. См. fooobar.com/questions/14635/...
Чтобы объединить все строки в строку и удалить новые строки, я обычно использую:
with open('t.txt') as f:
s = " ".join([x.strip() for x in f])
В Python 3.5 или более поздней версии, используя pathlib, вы можете скопировать содержимое текстового файла в переменную и закрыть файл в одну строку:
from pathlib import Path
txt = Path('data.txt').read_text()
и затем вы можете использовать str.replace для удаления новых строк:
txt = txt.replace('\n', '')
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
join() присоединится к списку строк, а rstrip() без аргументов будет обрезать пробелы, включая строки новой строки, с конца строк.
Это можно сделать с помощью метода read():
text_as_string = open('Your_Text_File.txt', 'r').read()
Или, поскольку сам режим по умолчанию - 'r' (чтение), просто используйте,
text_as_string = open('Your_Text_File.txt').read()
Я rstrip
с этим и предпочитаю использовать 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()])
Вы также можете разделить каждую строку и объединить в конечную строку.
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
Это тоже будет хорошо.
Это однострочное решение для копирования, которое также закрывает файл:
_ = open('data.txt', 'r'); data = _.read(); _.close()
f = open('data.txt','r')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print string
Я удивлен, что никто не упоминал 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
Я не чувствую, что кто-то обращался к [] части вашего вопроса. Когда вы читаете каждую строку в своей переменной, потому что перед заменой \n на "несколько" было несколько строк, вы создали список. Если у вас есть переменная x и распечатайте ее только на
x
или print (x)
или str (x)
Вы увидите весь список с помощью скобок. Если вы вызываете каждый элемент (массив сортировок)
х [0] то он опускает скобки. Если вы используете функцию str(), вы увидите только данные, а не "". ул (х [0])
python3: Google "list comphrension", если синтаксис с квадратной скобкой является новым для вас.
with open('data.txt') as f:
lines = [ line.strip( ) for line in list(f) ]
Вы пробовали это?
x = "yourfilename.txt"
y = open(x, 'r').read()
print(y)
Это работает: Измените свой файл на:
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]
Этот код поможет вам прочитать первую строку, а затем с помощью опции списка и разделения вы можете преобразовать первое строковое слово, разделенное пробелом, которое будет сохранено в списке.
Чем вы можете легко получить доступ к любому слову или даже сохранить его в строке.
Вы также можете сделать то же самое с помощью цикла 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
Может быть, вы могли бы попробовать это? Я использую это в своих программах.
Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
Регулярное выражение тоже работает:
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']