Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Leer un archivo de texto

35/44
Recursos

Aportes 42

Preguntas 8

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Excelente, muy importante saber que el .read ocupa mas espacio en memoria y que siempre se debe cerrar con .close, y para evitar esto, mejor debemos usar el with open. Muchas gracias!

Tambi茅n es recomendable usar esta estructura para que no aparezcan s铆mbolos raros encaso de que se sean archivos binarios.
鈥榬鈥 = para leer el archivo
鈥檈ncoding="UTF-8鈥 = convierte todo en letras

 with open("./archivos/numbers.txt", "r", encoding="UTF-8") as f:

LEER ARCHIVOS DE TEXTO
Para realizar la lectura de un archivo tipo texto en Python debemos utilizar la funci贸n open( ), esta funci贸n nos permite abrir un archivo tipo texto en python.

f = open('./text.txt')
print(f.read())
_Producci贸n:_
linea 1
lina 2 
linea3
linea 4
asj
hjdc
judfnvkdjnv
zujcb

la funci贸n open() devuelve un resultado con print(f.read()) de tipo texto el cual es el m茅todo r谩pido de lectura.

Si queremos solamente realizar la lectura de una linea de texto, debemos utilizar readline() de la siguiente manera:

f = open('./text.txt')
print(f.readline())
_Producci贸n:_
linea 1

Tambien con for podemos recorrer el tipo texto de la siguiente manera:

f = open('./text.txt')
print(f.readline())

for l in f:
  print(l)

f.close()
_Producci贸n:_
linea 1

lina 2 

linea3

linea 4

asj

hjdc

judfnvkdjnv

zujcb

Es de buena practica siempre cerrar el documento texto al finalizar su lectura, algunas veces python lo puede hacer d emanera autom谩tica pero si lo dejas abierto, esto te evitara que te reste memoria o que realices la lectura del archivo hasta cierto punto.

Al finalizar la lectura de un archivo debe ser cerrar su lectura con f.close()

adicional a esta introducci贸n sobre el manejo de archivos en Python existe mucha doc sobre el tema les dejo un enlace por si quieren seguir profundizando

https://realpython.com/working-with-files-in-python/

# lee un archivo en forma de lista
print(file.readlines())

Teniendo el archivo .py y el archivo .txt en la misma carpeta, no s茅 por qu茅 motivo me arroja FileNotFoundError desde la consola de VSC (a pesar de haber probado distintas maneras de insertarle la ruta del archivo como argumento a la funci贸n open()).
Para quienes hayan tenido el mismo problema, si ejecutan desde otra terminal como PowerShell o Cmder, el archivo .py no arroja error ninguno y puede leer sin problemas el archivo .txt

Pero una soluci贸n es la siguiente:

Desde VSC, click derecho sobre el archivo .txt y seleccionar 鈥Copiar ruta de acceso relativa鈥 y pegarlo en el argumento de la funci贸n open()

Cuando la ruta no es relativa como en el ejemplo se recomienda agregar toda ruta en donde se encuentre el archivo y se puede agregar r antes de la ruta para que lea todos los caracteres de la cadena de texto:

file = open(r鈥機:\Users\user\Desktop\text.txt鈥)
print(file.read())

Hola

Les comparto el c贸digo de la clase.

# Leer un archivo de texto

file = open("./text.txt")
'''
# Leer todo el archivo
print(file.read())

# Leer linea a linea
print(file.readline())
print(file.readline())

'''
# Iterar sobre las lineas del archivo (ocupa menos espacio en memoria)
for line in file:
  print(line)

file.close()

'''
Hay una instrucci贸n en Python a la cual le indicamos que abra el archivo y una vez terminadas las intrucciones que hayan all铆, Python automaticamente cerrar谩 el archivo.

https://www.freecodecamp.org/news/with-open-in-python-with-statement-syntax-example/
'''

with open("./text.txt") as file:
  print(file.read())

with open("./ruta/del/archivo.txt", "r") as f

La palabra clave (keyword) 鈥渨ith鈥 en Python se denomina un manejador contextual. Esta palabra clave lo que hace es controlar el flujo de nuestro archivo de manera que si cerramos el programa o el Script finaliza inesperadamente, el archivo no se rompe. Luego tenemos la funci贸n interna open, que lo que hace es abrir el archivo (ya sea en la computadora o en un servidor si estamos desarrollando aplicaciones web). Esta funci贸n open lleva varios par谩metros pero los obligatorios son 2: 1) La ruta del archivo, que va a estar en formato string (entre comillas) 2) el modo de apertura, ya sea la r (read), w (write) o a (append). Finalmente, agregamos el keyword as para manejar de manera m谩s sencilla y darle un nombre hipot茅tico a nuestro archivo dentro del programa para poder trabajarlo, en este caso le damos el nombre f.

  • Leer archivos de texto

    • Para leer un archivo de texto en Python, puedes utilizar el m茅todo open() de la siguiente manera:
    with open('nombre_del_archivo.txt', 'r') as f:
        contenido = f.read()
    
    
    • Esto abrir谩 el archivo en modo lectura ('r') y crear谩 un objeto de archivo (f). Luego, puedes usar el m茅todo read() para leer el contenido del archivo y almacenarlo en una variable llamada contenido.
    • Tambi茅n puedes iterar sobre las l铆neas del archivo usando un bucle for:
    with open('nombre_del_archivo.txt', 'r') as f:
        for linea in f:
            print(linea)
    
    
    • Si quieres leer el archivo l铆nea por l铆nea y almacenar cada l铆nea en una lista, puedes usar la funci贸n readlines():
    with open('nombre_del_archivo.txt', 'r') as f:
        lineas = f.readlines()
    
    
    • Es importante cerrar el archivo cuando hayas terminado de trabajar con 茅l. La sintaxis with open se encarga de cerrar el archivo autom谩ticamente cuando se sale del bloque de c贸digo.

With open con varios archivos

  • 鈥渨ith open()鈥 es una forma de abrir un archivo y manipularlo de manera segura
  • Esto asegura de que se cierre correctamente despu茅s de que se ha terminado de trabajar con 茅l.
  • Es especialmente importante para evitar errores y liberar recursos del sistema.

Si deseas trabajar con varios archivos en Python, puede hacer lo siguiente:

with open("archivo1.txt") as file1:
    # trabajar con el archivo1
    
with open("archivo2.txt") as file2:
    # trabajar con el archivo2
<file = open('./text.txt')
# print(file.read()) #lee todo el texto, no estan liviano 

#print(file.readline()) #Lee l铆nea a l铆nea, es liviano  

for line in file:
  print(line)

file.close() # Cierra el archivo

# Version que cierra archivos autom谩ticamente 
with open('./text.txt') as file:
  for line in file:
    print(line)> 

Leer un archivo de texto

  • Archivo de texto
# text.txt debe estar al mismo nivel del archivo de lectura
line 1
line 2
line 3
line 4 con algo mas

otro mas
line 7
  • Archivo de lectura
#-------------- Leer un archivo de texto ------------

# leer archivo
file = open('./text.txt')
print(file.read())
--> line 1
		line 2
		line 3
		line 4 con algo mas
		
		otro mas
		line 7

# imprimir linea a linea del archivo
file = open('./text.txt')
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())
--> line 1
		line 2
		line 3
		line 4 con algo mas

# leer el archivo con for iterando linea a linea
for line in file:
  print(line)
--> line 1
		line 2
		line 3
		line 4 con algo mas
		
		otro mas
		line 7
  
# es importante cerrar el archivo cuando se termina de trabajar con el
# libera espacio en memoria y cierra el archivo en python
file.close()

# cerrar el archivo una vez se ejecuten ciertas instrucciones con with
with open('./text.txt') as file:
  # leer archivo
  for line in file:
    print(line)
--> line 1
		line 2
		line 3
		line 4 con algo mas
		
		otro mas
		line 7

Para leer archivos de texto en Python usamos alguno de los siguientes 3 procedimientos, donde guardamos los datos en鈥

    1. 鈥 una lista, donde cada elemento es una linea del archivo
    1. 鈥 una lista, donde cada elemento es una palabra del archivo
    1. 鈥 una multilista, donde cada elemento es una lista que contiene una linea del archivo y donde cada elemento de esa sublista es una palabra del archivo.

El m茅todo a utilizar depender谩 de la forma en c贸mo queramos analizar los datos.

```python # Leer un txt texto = open ("./text.txt") #print (texto.read()) # leer linea especificas una a una # print(texto.readline()) # print(texto.readline()) # print(texto.readline()) for linea in texto: print(linea) texto.close() with open ("./text.txt") as texto: for linea in texto: print(linea) ```# Leer un txt texto = open ("./text.txt")#print (texto.read()) \# leer linea especificas una a una \# print(texto.readline())# print(texto.readline())# print(texto.readline()) for linea in texto:聽 聽 print(linea)texto.close() with open ("./text.txt") as texto:聽for linea in texto:聽 聽 print(linea)

Adicional a la opci贸n de archivos txt, csv o diferentes tipos, tambi茅n me ha llamado la atenci贸n la opci贸n de hacer lectura de lo que se tenga en el clipboard

Por favor, en este formato de d贸nde descargo los archivos de la clase?

Leer un archivo de texto


Para leer un archivo de texto desde Python, puedes utilizar la funci贸n open() junto con las operaciones de lectura. Aqu铆 tienes los pasos b谩sicos para leer un archivo de texto:

  1. Abre el archivo en modo de lectura utilizando la funci贸n open(). Puedes especificar el nombre del archivo que deseas abrir como argumento.
nombre_archivo = "archivo.txt"  # Reemplaza "archivo.txt" con el nombre de tu archivo 
try:     
	with open(nombre_archivo, "r") as archivo:         
		# C贸digo para leer el archivo 
except FileNotFoundError:     
	print(f"El archivo '{nombre_archivo}' no se encontr贸.")
except IOError:     
	print(f"No se puede abrir el archivo '{nombre_archivo}' para lectura.")
  1. Lee el contenido del archivo utilizando m茅todos como read(), readline(), o readlines().
  • read(): Lee todo el contenido del archivo y lo devuelve como una cadena.
  • readline(): Lee una l铆nea del archivo a la vez.
  • readlines(): Lee todas las l铆neas del archivo y las devuelve como una lista de cadenas.

Aqu铆 tienes ejemplos de c贸mo usar estos m茅todos:

try:     
	with open(nombre_archivo, "r") as archivo:         
	# Leer todo el contenido del archivo y almacenarlo en una variable         
	contenido = archivo.read()         
	print(contenido)          
	
	# Leer l铆nea por l铆nea         
	for linea in archivo:             
		print(linea)          
	
	# Leer todas las l铆neas y almacenarlas en una lista         
	lineas = archivo.readlines()         
	for linea in lineas:             
		print(linea) 
except FileNotFoundError:     
	print(f"El archivo '{nombre_archivo}' no se encontr贸.") 
except IOError:     
	print(f"No se puede abrir el archivo '{nombre_archivo}' para lectura.")
  1. Aseg煤rate de manejar excepciones como FileNotFoundError o IOError para manejar posibles problemas al abrir o leer el archivo.

Es importante notar que el uso del bloque with en el c贸digo asegura que el archivo se cierre autom谩ticamente despu茅s de su uso, lo que es una pr谩ctica recomendada para evitar problemas de manejo de archivos.

Aseg煤rate de reemplazar "archivo.txt" con la ruta y el nombre de archivo correctos seg煤n tu caso. Adem谩s, ten en cuenta que debes tener permisos de lectura para el archivo que deseas abrir desde Python.

Quiero compartirte un programa:
no solamente crear la funcion read y darle el modo de lectura es suficiente, es necsario darle la funcion read(), para que pueda ejecutarse nuestro programa.

Antes:

def read(answer):
    mensaje = open("./words.txt","r")
    if mensaje == True:
        return mensaje
    else:
        return False
    


def run():
    user_answer = input("Conocer contenido: ")
    reading_fun = read(user_answer)
    if user_answer == "si":
        print(reading_fun)
    else:
        print("Entendido")
    question_2 = input("Conocer nuevamente mensaje: ")
    if user_answer == True and question_2 == True:
        print("Mensaje ya mostrado")
    elif question_2 == "no":
        print("Entendido")
    else:
        print(read(user_answer))
if __name__ == "__main__":
    run()

despues:

def read(answer):
    mensaje = open("./words.txt","r").read()
    if answer in ["si","SI","Si","sI"]:
        return mensaje
    else:
        return False
    


def run():
    user_answer = input("Conocer contenido: ")
    reading_fun = read(user_answer)
    if reading_fun:
        print(reading_fun)
    else:
        print("Entendido")
    question_2 = input("Conocer nuevamente mensaje: ")
    if user_answer and question_2:
        print("Mensaje ya mostrado")
    elif question_2 in ["NO","no","nO"]:
        print("Entendido")
    else:
        print(reading_fun)
if __name__ == "__main__":
    run()

Con este ejemplo pude aprender como se usa el read y el close

# Paso 1: Abrir el archivo en modo de lectura
archivo = open('archivo.txt', 'r')

# Paso 2: Leer el contenido del archivo
contenido = archivo.read()
# O puedes usar readlines() para leer el archivo l铆nea por l铆nea y obtener una lista de l铆neas
# lineas = archivo.readlines()

# Paso 3: Cerrar el archivo
archivo.close()

# Trabajar con el contenido del archivo
print(contenido)
# O puedes trabajar con la lista de l铆neas
# for linea in lineas:
#     print(linea)


Para leer archivos en Python, se utilizan varias funciones y m茅todos proporcionados por el lenguaje. Aqu铆 tienes un ejemplo de c贸mo leer un archivo en Python:

# Abrir el archivo en modo lectura
archivo = open('archivo.txt', 'r')

# Leer el contenido del archivo
contenido = archivo.read()

# Imprimir el contenido del archivo
print(contenido)

# Cerrar el archivo
archivo.close()

En este ejemplo, se sigue una secuencia de pasos para leer un archivo:

  1. Se utiliza la funci贸n open() para abrir el archivo. Se proporciona el nombre del archivo a abrir como primer argumento (鈥榓rchivo.txt鈥 en este caso) y se especifica el modo de apertura como segundo argumento (鈥榬鈥 para lectura en este caso).

  2. Una vez abierto el archivo, se utiliza el m茅todo read() para leer el contenido completo del archivo y almacenarlo en la variable contenido.

  3. Finalmente, se imprime el contenido del archivo utilizando la funci贸n print().

  4. Es importante cerrar el archivo despu茅s de haber terminado de leerlo utilizando el m茅todo close().

Es recomendable cerrar el archivo despu茅s de leerlo para liberar los recursos asociados al mismo.

Adem谩s del m茅todo read(), existen otros m茅todos que se pueden utilizar para leer archivos en Python, como readline(), que lee una l铆nea del archivo, o readlines(), que lee todas las l铆neas del archivo y las devuelve como una lista.

Tambi茅n es posible utilizar un enfoque m谩s seguro y eficiente para leer archivos utilizando el bloque with, que se encarga de cerrar autom谩ticamente el archivo despu茅s de su uso, incluso si ocurren excepciones. Aqu铆 tienes un ejemplo:

with open('archivo.txt', 'r') as archivo:
    contenido = archivo.read()
    print(contenido)

En este caso, no es necesario utilizar el m茅todo close() porque el bloque with se encarga de cerrar el archivo autom谩ticamente al finalizar el bloque.

Recuerda reemplazar 'archivo.txt' con la ruta y el nombre del archivo que deseas leer en tu caso espec铆fico.

Muy buena clase!!! La verdad que me trae recuerdo de mis primeros pasos ya hace 24 en la programaci贸n, pero dando mis primeros pasos con C, lo que hoy en d铆a me ayuda a entender mucho conceptos ac谩 con Python y otros lenguajes.


# Imprimir lista
file = open('./text.txt')
'''
# Un ejemplo de imprimir lista
print(file.read())

# segundo ejemplo de imprimir linea por linea de la lista
print(file.readline()) # linea 1
print(file.readline()) # linea 2
print(file.readline()) # linea 3
print(file.readline()) # linea 4
print(file.readline()) # linea 5
print(file.readline()) # linea 6
print(file.readline()) # linea 7
print(file.readline()) # linea 8
print(file.readline()) # linea 9
print(file.readline()) # linea 10

# Cerrar el archivo  
file.close()
'''

# Veamos un ejemplo imprimir el texto con for. Abre el archivo y cuando cerrarlo
for line in file: # Abrir 
  print(line)

file.close() # cerrar

Aplicando conocimientos anteriores, abr铆 el archivo y hice una lista con su contenido, luego a esta lista aplique un filtro para que no aparezcan las l铆neas con espacios vac铆os, y de este modo cree una nueva lista y sus textos linea a linea.

As铆 puedo usar el index de las lista para buscar la linea que quiero.

lineas = []
with open("./23-text.txt") as file:
  for line in file:
    lineas.append(line)


print(list(filter(lambda x: x!="\n",lineas))[3])
# en python es una buena practica cerrar el archivo, luego de que ya se termino de leer, esto ayuda a liberar espacio en memoria.

line_number = 0
for line in file:
  print(line)
  line_number += 1

print(line_number)
file.close()

# con este segundo metodo de lectura, no es necesario recordar siempre el tener que cerrar los archivos, ya que lo hace automaticamente al terminar de leerlo, este seria el shorthand del metodo .close()
with open("./23-text.txt") as file:
  for line in file:
    print(line)

vsCode me hizo demorar porque no detectaba la ruta, la mejor forma es con el relative path para que no sea tan largo

El m茅todo m谩s 贸ptimo para leer archivos de texto en Python depende del tama帽o del archivo y del tipo de lectura que deseas realizar:

1. Lectura l铆nea por l铆nea:
Si el archivo de texto es grande y solo necesitas procesar una l铆nea a la vez,
leer el archivo l铆nea por l铆nea utilizando un bucle for es eficiente en t茅rminos de consumo de memoria.
Esto es especialmente 煤til si el archivo es demasiado grande para caber en la memoria disponible.

2. Lectura completa del archivo:
Si necesitas acceder a todo el contenido del archivo en una sola operaci贸n, el m茅todo read() es adecuado.
Sin embargo, ten en cuenta que si el archivo es extremadamente grande, cargar todo su contenido en la memoria puede
agotar los recursos disponibles.

3. Lectura por bloques:
Si el archivo es muy grande pero no necesitas acceder a todo su contenido al mismo tiempo,
puedes leerlo en bloques utilizando el m茅todo read(size), donde size especifica la cantidad de bytes que deseas leer.
Esto permite trabajar con secciones del archivo sin cargarlo completamente en memoria.

buffer_size = 4096  # Tama帽o del bloque en bytes

with open('archivo.txt', 'r') as archivo:
    while True:
        bloque = archivo.read(buffer_size)
        if not bloque:
            break
        # Procesar el bloque le铆do
        print(bloque)
file = open('./text.txt')
'''
print(file.read())
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())
'''
for line in file:
  print(line)

file.close()

with open('./text.txt') as file:
  for line in file:
    print(line)

Si haces tu codigo en VSCode, hay que usar doble diagonal en la ruta de acceso:

file = open('python 102\\23_files\\text.txt')')

Del pythoner mas conocido del mundo鈥"you don麓t have to put on the readlines鈥oxanne!!!) 馃槃 馃槃

Excelente, muy importante saber que el .read ocupa mas espacio en memoria y que siempre se debe cerrar con .close, y para evitar esto, mejor debemos usar el with open. Muchas gracias!

muy buenoo, pero me vuelven loco la cantidad de typos!

file = open("./text.txt")


#Cierra el archivo una vez terminado el proceso, por lo que no hay que hacerlo manualmente con .close()
with open("./text.txt", "w", encoding= 'UTF-8') as f:
    for i in range(1, 101):
        f.write(f"Line {i} \n")
        
        
        
#print(file.read()) # Leer el archivo completo, ocupa m谩s espacio en memoria

#abrir y cerrar el archivo de manera manual
print(file.readline()) # Leerlo linea a linea con un iterable manual, ocupa menos espacio en memoria
for i in file:
    print(i)
f.close()

#abrir y cerrar el archivo automaticamente con with
with open("./text.txt", "r", encoding='UTF-8') as f:
    for line in f:
        print(line)

No sabia lo de with, que cierra el archivo luego de ser usado

file=open("./Platzi/Funciones Comprehensions y Manejo de errores/Manipulacion de archivos y errores/text.txt")
#Leerlo completamente
#print(file.read())

#Leerlo linea por linea
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())

for line in file:
    print(line)
    
file.close() 

#Con el with no sera necesario cerrar el archivo
with open("./Platzi/Funciones Comprehensions y Manejo de errores/Manipulacion de archivos y errores/text.txt") as file:
    for line in file:
        print(line)

me gusto much铆simo esta clase, f谩cil de entender

usar with open para que lo cierre autom谩tico

#para abrir un archivo
file = open('./text.txt')
# leer el archivo
# print(file.read())
# leer las lineas del archivo
# print(file.readline())
# print(file.readline())
# print(file.readline())
# print(file.readline())

for line in file:
  print(line)
# cerrar archivo
file.close()

#abrir , leer y cerrar archivos automaticamente

with open('./text.txt') as file:
  for line in file:
    print(line)

Excelente explicaci贸n de paso por paso para leer archivos!

me gusto mucho cuando usa el cierre autom谩tico

with open('Prueba.txt') as filex:

clase :

COMO MANIPULAR ARCHIVOS EN PYTHON

Estamos ejecutando o importando un archivo de texto desde otro modulo con la funcion 鈥渙pen鈥

file = open (鈥./texto.txt鈥)
print(file.read()) # En este caso abre y lee el archivo de .txt por completo, Esta funcion jala mucha memoria
file.close() # Debemos cerrar el archivo para liberar memoria

def guion(i):
print( i * 40)
guion("-")

file = open (鈥./texto.txt鈥)
print(file.readline()) #鈥欌欌 Tambien podemos ejecutarlo linea a linea 鈥樷'
print(file.readline())
print(file.readline())
print(file.readline())

guion("-")

file = open (鈥./texto.txt鈥)
for line in file: # Usamos la funcion 鈥淔OR鈥 para que itere el archivo file por fila cuando no conocemos su tama帽o
print(line)
file.close()

鈥樷欌 En esta funcion jalaria menos memoria comparado con la funcion 鈥淩EAD鈥, debido a que esta leyendo linea a linea el archivo aunque lo lee por completo
鈥欌'
guion("-")

with open(鈥./texto.txt鈥) as file:
for line in file:
print(line)

鈥樷欌 Con la funcion 鈥淲ITH鈥 podemos ejecutar el archivo y se cierra automaticamente despues de la ejecucion del el 鈥樷欌

txt:

line 1
line 2
linr 3
asa
s
as
as

sd