separar - ¿Cómo leo un archivo de texto en una variable de cadena en Python?
string en python (19)
¿Has probado esto?
x = "yourfilename.txt"
y = open(x, ''r'').read()
print(y)
Uso el siguiente segmento de código para leer un archivo en Python
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
archivo de entrada es
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
y cuando imprimo datos obtengo
[''LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN/n'', ''GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE'']
Como veo los datos está en forma de lista. ¿Cómo lo hago cadena? Y también, ¿cómo elimino los caracteres "/ n", "[" y "]"?
En Python 3.5 o posterior, al usar pathlib puede copiar el contenido del archivo de texto en una variable y cerrar el archivo en una línea:
from pathlib import Path
txt = Path(''data.txt'').read_text()
Es difícil decir exactamente lo que estás buscando, pero algo como esto debería ayudarte a comenzar:
with open ("data.txt", "r") as myfile:
data = '' ''.join([line.replace(''/n'', '''') for line in myfile.readlines()])
Esta es una solución de una línea y copiable que también cierra el objeto de archivo:
_ = open(''data.txt'', ''r''); data = _.read(); _.close()
Esto funciona: Cambie su archivo a:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Entonces:
file = open("file.txt")
line = file.read()
words = line.split()
Esto crea una lista de words
nombradas que es igual a:
[''LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN'', ''GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE'']
Eso se deshizo de la "/ n". Para responder a la parte sobre los paréntesis que se interponen en su camino, simplemente haga esto:
for word in words: # Assuming words is the list above
print word # Prints each word in file on a different line
O:
print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space
Esto devuelve:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
He estado jugando con esto por un tiempo y prefiero usar el uso de read
en combinación con rstrip
. Sin rstrip("/n")
, Python agrega una nueva línea al final de la cadena, que en la mayoría de los casos no es muy útil.
with open("myfile.txt") as f:
file_content = f.read().rstrip("/n")
print file_content
La forma más sencilla:
file = open(''data.txt'', ''r'')
text = file.read().strip()
file.close()
Me sorprende que nadie haya mencionado splitlines()
todavía.
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
Los data
variables ahora son una lista que se ve así cuando se imprimen:
[''LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN'', ''GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE'']
Tenga en cuenta que no hay nuevas líneas ( /n
).
En ese momento, parece que desea imprimir las líneas a la consola, lo que puede lograr con un bucle for:
for line in data:
print line
No siento que nadie haya abordado la parte [] de su pregunta. Cuando leyó cada línea en su variable, porque había varias líneas antes de reemplazar / n con '''', terminó creando una lista. Si tienes una variable de x e imprímela solo con
X
o imprimir (x)
o str (x)
Verá la lista completa con los paréntesis. Si llamas a cada elemento de la (ordenación de tipos)
x [0] entonces omite los paréntesis. Si usa la función str () verá solo los datos y no el '''' tampoco. str (x [0])
Podrías usar:
with open(''data.txt'', ''r'') as myfile:
data=myfile.read().replace(''/n'', '''')
Puedes comprimir esto en una en dos líneas de código !!!
content = open(''filepath'',''r'').read().replace(''/n'','' '')
print(content)
si su archivo lee:
hello how are you?
who are you?
blank blank
salida de pitón
hello how are you? who are you? blank blank
Puedes leer de un archivo en una línea:
str = open(''very_Important.txt'', ''r'').read()
Tenga en cuenta que esto no cierra el archivo explícitamente.
CPython cerrará el archivo cuando salga como parte de la recolección de basura.
Pero otras implementaciones de python no lo harán. Para escribir código portátil, es mejor usar o cerrar explícitamente el archivo. Corto no siempre es mejor. Consulte https://.com/a/7396043/362951
También puede eliminar cada línea y concatenar en una cadena final.
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
Esto también funcionaría bien.
python3: Google "list comphrension" si la sintaxis del corchete es nueva para usted.
with open(''data.txt'') as f:
lines = [ line.strip( ) for line in list(f) ]
usa read (), no readline ()
with open(''data.txt'', ''r'') as myfile:
data = myfile.read()
f = open(''data.txt'',''r'')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print string
file = open("myfile.txt", "r")
lines = file.readlines()
str = '''' #string declaration
for i in range(len(lines)):
str += lines[i].rstrip(''/n'') + '' ''
print str
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
join () se unirá a una lista de cadenas, y rstrip () sin argumentos recortará los espacios en blanco, incluidas las nuevas líneas, desde el final de las cadenas.
with open(player_name, ''r'') as myfile:
data=myfile.readline()
list=data.split(" ")
word=list[0]
Este código le ayudará a leer la primera línea y luego, utilizando la opción de lista y división, puede convertir la primera palabra de línea separada por espacio para almacenarla en una lista.
De lo que puede acceder fácilmente a cualquier palabra, o incluso almacenarla en una cadena.
También puede hacer lo mismo con el uso de un bucle for.