¿Cómo leer un archivo línea por línea en una lista?

Resuelto Julie Raswick asked hace 14 años • 0 respuestas

¿Cómo leo cada línea de un archivo en Python y almaceno cada línea como un elemento en una lista?

Quiero leer el archivo línea por línea y agregar cada línea al final de la lista.

Julie Raswick avatar Jul 19 '10 05:07 Julie Raswick
Aceptado

Este código leerá el archivo completo en la memoria y eliminará todos los espacios en blanco (nuevas líneas y espacios) del final de cada línea:

with open(filename) as file:
    lines = [line.rstrip() for line in file]

Si está trabajando con un archivo grande, entonces debería leerlo y procesarlo línea por línea:

with open(filename) as file:
    for line in file:
        print(line.rstrip())

En Python 3.8 y versiones posteriores puedes usar un bucle while con el operador morsa de esta manera:

with open(filename) as file:
    while line := file.readline():
        print(line.rstrip())

Dependiendo de lo que planee hacer con su archivo y cómo se codificó, es posible que también desee configurar manualmente el modo de acceso y la codificación de caracteres:

with open(filename, 'r', encoding='UTF-8') as file:
    while line := file.readline():
        print(line.rstrip())
SilentGhost avatar Jul 18 '2010 22:07 SilentGhost

Ver Entrada y Salida :

with open('filename') as f:
    lines = f.readlines()

o eliminando el carácter de nueva línea:

with open('filename') as f:
    lines = [line.rstrip('\n') for line in f]
Felix Kling avatar Jul 18 '2010 22:07 Felix Kling

Esto es más explícito de lo necesario, pero hace lo que quieres.

with open("file.txt") as file_in:
    lines = []
    for line in file_in:
        lines.append(line)
robert avatar Jul 18 '2010 22:07 robert

Esto generará una "matriz" de líneas del archivo.

lines = tuple(open(filename, 'r'))

opendevuelve un archivo que se puede iterar. Cuando iteras sobre un archivo, obtienes las líneas de ese archivo. tuplePuede tomar un iterador y crear una instancia de tupla a partir del iterador que le proporcione. lineses una tupla creada a partir de las líneas del archivo.

Noctis Skytower avatar Jul 18 '2010 22:07 Noctis Skytower

Según los métodos de objetos de archivo de Python , la forma más sencilla de convertir un archivo de texto listes:

with open('file.txt') as f:
    my_list = list(f)
    # my_list = [x.rstrip() for x in f] # remove line breaks
  • Manifestación

Si solo necesita iterar sobre las líneas del archivo de texto, puede usar:

with open('file.txt') as f:
    for line in f:
       ...

Antigua respuesta:

Usando withy readlines():

with open('file.txt') as f:
    lines = f.readlines()

Si no le importa cerrar el archivo, esta frase funcionará:

lines = open('file.txt').readlines()

La forma tradicional :

f = open('file.txt') # Open file on read mode
lines = f.read().splitlines() # List with stripped line-breaks
f.close() # Close file
Pedro Lobito avatar Apr 20 '2015 05:04 Pedro Lobito