Pregunta ¿Cómo leo un archivo de texto en una variable de cadena en Python?


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 consigo

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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


633
2017-12-03 16:47


origen


Respuestas:


Podrías usar:

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

862
2017-12-03 17:06



use leer (), no leer ()

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

448
2018-04-18 12:27



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 de forma explícita.

CPython cerrará el archivo cuando salga como parte de la recolección de elementos no utilizados.

Pero otras implementaciones de Python no lo harán. Para escribir código portátil, es mejor usar with o cierra el archivo de forma explícita. Corto no siempre es mejor. Ver https://stackoverflow.com/a/7396043/362951


42
2017-12-03 02:52



La manera simple:

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

33
2018-03-21 03:10



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á el espacio en blanco, incluidas las líneas nuevas, desde el final de las cadenas.


26
2017-12-03 16:55



En Python 3.5 o posterior, usando pathlib puedes copiar el contenido del archivo de texto en una variable y cierra el archivo en una línea:

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

5
2018-03-29 20:26



He jugueteado con esto por un tiempo y he preferido usar el uso 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

5
2018-04-28 07:46



Es difícil decir exactamente lo que está buscando, pero algo como esto debería ayudarlo a comenzar:

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

4
2017-12-03 16:51



También puede quitar 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.


2
2018-04-26 05:57