Leer un archivo línea por línea y almacenar Python

Ultima actualización en domingo 13º mar. 2022

Utilice una de las siguientes formas de leer un archivo línea por línea y almacenarlo en una lista

  • Utilizando el readlines y strip Método
  • Utilizando el rstrip()
  • Utilizando el for Loop y strip() Método
  • Utilizando el splitlines()
  • Utilizando el pathlib Library y The splitlines() Método
  • Utilizando el List Comprehension

Permite que test.txt archivo contiene el nombre

	['Martin Sevilla',
'Guillem Mínguez',
'Rodrigo Arroyo',
'Marco Zaragoza',
'Aimar Briones',
'Alberto Malillos',
'Jordi Biel',
'Ismael Piedrabuena',
'Aaron Fernández',
'Marc Avilés',]
	

Nuestro propósito es leer cada línea (que en este caso contiene nombres) una por una y almacenarlos en una lista.

Utilizando el readlines y strip Método


  • readlines() es un método integrado en Python utilizado para leer un archivo línea por línea y luego almacenar cada línea en una lista.
  • string.strip(): Quita los espacios en blanco principales y finales, incluidos los caracteres de nueva línea ‘n’ y los caracteres tabulares ‘t’.

Vamos a usar el método ‘readlines()’ para leer el archivo línea por línea, mientras que el método strip() se usa para deshacerse del nuevo carácter de línea n mientras almacenamos los elementos en la lista.

	with open('test.txt') as f:
    content = f.readlines()
# Es posible que también desee quitar caracteres de espacio en blanco como 'n' al final de cada línea
li = [x.strip() for x in content]
print(li)
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]
	

Utilizando el line.rstrip()

string.rstrip() es una función incorporada en Python que elimina todos los espacios en blanco a la derecha de la cadena (espacios en blanco finales).

Por lo tanto, podemos usarla para eliminar o separar elementos de cada línea y luego almacenarlos en una lista usando la notación [].

	with open('test.txt') as f:
    lines = [line.rstrip() for line in f]
print(lines)
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]
	

Utilizando el for Loop y strip() Método

Utilice un bucle for para iterar sobre las líneas del archivo una por una y, a continuación, anexarlas a una lista mediante la función append().La función ‘strip()’ que nos permite despojar al carácter de nueva línea.

	with open("test.txt") as file_in:
    lines = []
    for line in file_in:
        lines.append(line.strip('n'))
    print(lines)
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]
	

Utilizando el splitlines()

splitlines() es una función incorporada en Python que se utiliza para dividir una cadena.

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

li = data.splitlines()
print(li)
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]
	

Utilizando el pathlib Library y The splitlines() Método

  • La biblioteca pathlib se introdujo en Python 3.4 y tiene un método práctico conocido como ‘read_text()’, que es una buena manera de leer el archivo sin tener que preocuparse por abrirlo o cerrarlo.
  • La función ‘splitlines’ convierte el contenido del archivo en una lista que contiene los elementos del archivo línea por línea.
	from pathlib import Path
p = Path('test.txt')
lines = p.read_text().splitlines()
print(lines)
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]
	

Utilizando el List Comprehension

List Comprehension es una forma compacta de crear listas.

	print([line.rstrip() for line in open('test.txt')])
	
	['Martin Sevilla','Guillem Mínguez','Rodrigo Arroyo','Marco Zaragoza','Aimar Briones','Alberto Malillos','Jordi Biel','Ismael Piedrabuena','Aaron Fernández','Marc Avilés',]