¿Cómo leer un archivo línea por línea en una lista?
¿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.
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())
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]
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)
Esto generará una "matriz" de líneas del archivo.
lines = tuple(open(filename, 'r'))
open
devuelve un archivo que se puede iterar. Cuando iteras sobre un archivo, obtienes las líneas de ese archivo. tuple
Puede tomar un iterador y crear una instancia de tupla a partir del iterador que le proporcione. lines
es una tupla creada a partir de las líneas del archivo.
Según los métodos de objetos de archivo de Python , la forma más sencilla de convertir un archivo de texto list
es:
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 with
y 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