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!
Introducción
El Zen de Python
Conjuntos
Sets
Modificando conjuntos
Operaciones con conjuntos
Playgrounds: Elimina elementos duplicados usando conjuntos
Comprehensions
List Comprehension
Dictionary Comprehension
Dictionary Comprehension: condition
Playgrounds: Crea una lista usando List Comprehension
Lists vs. Tuples vs. Sets
Funciones
Funciones
Funciones: return
Parámetros por defecto y múltiples returns
El scope
Refactor game
Playgrounds: Tienda de Tecnología
Funciones anónimas: lambda
Higher order function: una función dentro de otra función
Map
Map con diccionarios
Reto: map con inmutabilidad
Playgrounds: Multiplica todos los elementos por dos
Filter
Playgrounds: Retorna solo palabras de 4 letras y más
Reduce
Módulos
Módulos
Mis propios módulos
Módulos como scripts: __name__ y __main__
Paquetes
Playgrounds: Calcular la suma de todas las compras
Manipulación de archivos y errores
Iterables
Errores en Python
Manejo de excepciones
Playgrounds: Captura la excepción: ZeroDivisionError
Leer un archivo de texto
Escribir en un archivo
Leer un CSV
Playgrounds: Lee un CSV para calcular el total de gastos
Gráficas en Python
Creando una gráfica
Reto: graficando la población de un país
Reto: graficando la población mundial
Próximos pasos
¡Conoce otros proyectos de este curso!
Reconoce tu proceso y certifícate
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
Aportes 54
Preguntas 12
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.
‘r’ = para leer el archivo
’encoding="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 conprint(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()
# 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’C:\Users\user\Desktop\text.txt’)
print(file.read())
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
with open("./ruta/del/archivo.txt", "r") as f
La palabra clave (keyword) “with” 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.
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())
Leer archivos de texto
open()
de la siguiente manera:with open('nombre_del_archivo.txt', 'r') as f:
contenido = f.read()
'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
.for
:with open('nombre_del_archivo.txt', 'r') as f:
for linea in f:
print(linea)
readlines()
:with open('nombre_del_archivo.txt', 'r') as f:
lineas = f.readlines()
with open
se encarga de cerrar el archivo automáticamente cuando se sale del bloque de código.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
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)>
# 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
#-------------- 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…
El método a utilizar dependerá de la forma en cómo queramos analizar los datos.
mi_archivo = open('./text.txt')
print(mi_archivo.read())
mi_archivo.close()
to
with open('./text.txt') as mi_archivo:
print(mi_archivo.read())
This change ensures that the file will be properly closed after finishing its suite.
Me sorprende la forma en leer los archivos de texto a python usando este metodo. Podria funcionar con archivos de otro tipo como word, excel o nose.
# Leer un archivo de texto
# leer un archivo
file = open('./text.txt')
print(file.read())
# imprimir linea a linea del archivo
file = open('./text.txt')
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())
# leer el archivo con un for iterando linea a linea
for line in file:
print(line)
'''
Nota:
Es importante cerrar el archivo al finalizar el proceso, esto libera espacio en memoria y cierra el archivo
'''
file.close()
'''
Nota 2:
Se puede utilizar with para cerrar el archivo y liberar espacio en memoria de forma aotomática
'''
with open('./text.txt') as file:
for line in file:
print(line)
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:
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.")
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.")
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:
Se utiliza la función open()
para abrir el archivo. Se proporciona el nombre del archivo a abrir como primer argumento (‘archivo.txt’ en este caso) y se especifica el modo de apertura como segundo argumento (‘r’ para lectura en este caso).
Una vez abierto el archivo, se utiliza el método read()
para leer el contenido completo del archivo y almacenarlo en la variable contenido
.
Finalmente, se imprime el contenido del archivo utilizando la función print()
.
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…Roxanne!!!) 😄 😄
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 :
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 “FOR” 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 “READ”, 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 “WITH” 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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?