¿Cómo leer un archivo de texto en una variable de cadena y quitar líneas nuevas?

Uso el siguiente segmento de código para leer un archivo en python:

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

El archivo de entrada es:

 LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE 

y cuando imprimo datos obtengo

 ['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE'] 

Como veo los datos está en forma de list . ¿Cómo lo hago string? Y también, ¿cómo elimino los caracteres "\n" , "[" y "]" ?

Podrías usar:

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

usa read (), no readline ()

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

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 un código portátil, es mejor usar o cerrar explícitamente el archivo. Corto no siempre es mejor. Consulte https://stackoverflow.com/a/7396043/362951

La forma más sencilla:

 file = open('data.txt', 'r') text = file.read().strip() file.close() 

Usando with (recomendado):

 with open('data.txt', encoding='utf8') as f: text = f.read().strip() 

Nota: no es necesario cerrar el archivo, with hace automágicamente .

 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.

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() 

y luego puede usar str.replace para eliminar las nuevas líneas:

 txt = txt.replace('\n', '') 

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 

Esto se puede hacer usando el método read ():

 text_as_string = open('Your_Text_File.txt', 'r').read() 

O como el modo predeterminado en sí es ‘r’ (lectura), así que simplemente use,

 text_as_string = open('Your_Text_File.txt').read() 

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() 

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.

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

Estoy sorprendido de 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 

¡Usted puede 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 python

 hello how are you? who are you? blank blank 

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 la \ 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ás 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])

python3: Google “list comphrension” si la syntax del corchete es nueva para usted.

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

¿Has probado esto?

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

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 lo siguiente:

 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 
 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 puedes hacer lo mismo con el uso de un bucle 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