Capítulo 7: Entrada/Salida de Archivos y Gestión de Recursos
7.7 Ejercicios Prácticos
Ejercicio 1: Escribe un programa en Python para escribir las siguientes líneas en un archivo y luego leer el archivo.
lines = [
"Python is an interpreted, high-level, general-purpose programming language.\\n",
"It was created by Guido van Rossum and first released in 1991.\\n",
"Python's design philosophy emphasizes code readability.\\n"
]
Respuesta:
with open('myfile.txt', 'w') as f:
f.writelines(lines)
with open('myfile.txt', 'r') as f:
print(f.read())
Ejercicio 2: Utiliza el decorador contextmanager
de contextlib
para crear un administrador de contexto que imprima "Entrando"
al entrar en el contexto y "Saliendo"
al salir del contexto.
Respuesta:
import contextlib
@contextlib.contextmanager
def my_context():
print("Entering")
yield
print("Exiting")
with my_context():
print("In the context")
Ejercicio 3: Escribe un programa en Python para crear una referencia circular y mostrar el recuento de referencias de los objetos involucrados en la referencia circular. Además, utiliza el módulo gc
para mostrar que el recolector de basura libera adecuadamente la referencia circular.
Respuesta:
import gc
import sys
class MyClass:
def __init__(self, name):
self.name = name
# Create a circular reference
a = MyClass('a')
b = MyClass('b')
a.other = b
b.other = a
# Print reference counts
print("Reference count for a: ", sys.getrefcount(a))
print("Reference count for b: ", sys.getrefcount(b))
# Remove references
a = None
b = None
# Force garbage collection
gc.collect()
print("Garbage collector has run.")
Estos ejercicios te brindarán experiencia práctica trabajando con operaciones de archivos, administradores de contexto y gestión de memoria en Python. El punto clave es comprender el valor de estos conceptos para escribir código Python limpio, eficiente y efectivo.
7.7 Ejercicios Prácticos
Ejercicio 1: Escribe un programa en Python para escribir las siguientes líneas en un archivo y luego leer el archivo.
lines = [
"Python is an interpreted, high-level, general-purpose programming language.\\n",
"It was created by Guido van Rossum and first released in 1991.\\n",
"Python's design philosophy emphasizes code readability.\\n"
]
Respuesta:
with open('myfile.txt', 'w') as f:
f.writelines(lines)
with open('myfile.txt', 'r') as f:
print(f.read())
Ejercicio 2: Utiliza el decorador contextmanager
de contextlib
para crear un administrador de contexto que imprima "Entrando"
al entrar en el contexto y "Saliendo"
al salir del contexto.
Respuesta:
import contextlib
@contextlib.contextmanager
def my_context():
print("Entering")
yield
print("Exiting")
with my_context():
print("In the context")
Ejercicio 3: Escribe un programa en Python para crear una referencia circular y mostrar el recuento de referencias de los objetos involucrados en la referencia circular. Además, utiliza el módulo gc
para mostrar que el recolector de basura libera adecuadamente la referencia circular.
Respuesta:
import gc
import sys
class MyClass:
def __init__(self, name):
self.name = name
# Create a circular reference
a = MyClass('a')
b = MyClass('b')
a.other = b
b.other = a
# Print reference counts
print("Reference count for a: ", sys.getrefcount(a))
print("Reference count for b: ", sys.getrefcount(b))
# Remove references
a = None
b = None
# Force garbage collection
gc.collect()
print("Garbage collector has run.")
Estos ejercicios te brindarán experiencia práctica trabajando con operaciones de archivos, administradores de contexto y gestión de memoria en Python. El punto clave es comprender el valor de estos conceptos para escribir código Python limpio, eficiente y efectivo.
7.7 Ejercicios Prácticos
Ejercicio 1: Escribe un programa en Python para escribir las siguientes líneas en un archivo y luego leer el archivo.
lines = [
"Python is an interpreted, high-level, general-purpose programming language.\\n",
"It was created by Guido van Rossum and first released in 1991.\\n",
"Python's design philosophy emphasizes code readability.\\n"
]
Respuesta:
with open('myfile.txt', 'w') as f:
f.writelines(lines)
with open('myfile.txt', 'r') as f:
print(f.read())
Ejercicio 2: Utiliza el decorador contextmanager
de contextlib
para crear un administrador de contexto que imprima "Entrando"
al entrar en el contexto y "Saliendo"
al salir del contexto.
Respuesta:
import contextlib
@contextlib.contextmanager
def my_context():
print("Entering")
yield
print("Exiting")
with my_context():
print("In the context")
Ejercicio 3: Escribe un programa en Python para crear una referencia circular y mostrar el recuento de referencias de los objetos involucrados en la referencia circular. Además, utiliza el módulo gc
para mostrar que el recolector de basura libera adecuadamente la referencia circular.
Respuesta:
import gc
import sys
class MyClass:
def __init__(self, name):
self.name = name
# Create a circular reference
a = MyClass('a')
b = MyClass('b')
a.other = b
b.other = a
# Print reference counts
print("Reference count for a: ", sys.getrefcount(a))
print("Reference count for b: ", sys.getrefcount(b))
# Remove references
a = None
b = None
# Force garbage collection
gc.collect()
print("Garbage collector has run.")
Estos ejercicios te brindarán experiencia práctica trabajando con operaciones de archivos, administradores de contexto y gestión de memoria en Python. El punto clave es comprender el valor de estos conceptos para escribir código Python limpio, eficiente y efectivo.
7.7 Ejercicios Prácticos
Ejercicio 1: Escribe un programa en Python para escribir las siguientes líneas en un archivo y luego leer el archivo.
lines = [
"Python is an interpreted, high-level, general-purpose programming language.\\n",
"It was created by Guido van Rossum and first released in 1991.\\n",
"Python's design philosophy emphasizes code readability.\\n"
]
Respuesta:
with open('myfile.txt', 'w') as f:
f.writelines(lines)
with open('myfile.txt', 'r') as f:
print(f.read())
Ejercicio 2: Utiliza el decorador contextmanager
de contextlib
para crear un administrador de contexto que imprima "Entrando"
al entrar en el contexto y "Saliendo"
al salir del contexto.
Respuesta:
import contextlib
@contextlib.contextmanager
def my_context():
print("Entering")
yield
print("Exiting")
with my_context():
print("In the context")
Ejercicio 3: Escribe un programa en Python para crear una referencia circular y mostrar el recuento de referencias de los objetos involucrados en la referencia circular. Además, utiliza el módulo gc
para mostrar que el recolector de basura libera adecuadamente la referencia circular.
Respuesta:
import gc
import sys
class MyClass:
def __init__(self, name):
self.name = name
# Create a circular reference
a = MyClass('a')
b = MyClass('b')
a.other = b
b.other = a
# Print reference counts
print("Reference count for a: ", sys.getrefcount(a))
print("Reference count for b: ", sys.getrefcount(b))
# Remove references
a = None
b = None
# Force garbage collection
gc.collect()
print("Garbage collector has run.")
Estos ejercicios te brindarán experiencia práctica trabajando con operaciones de archivos, administradores de contexto y gestión de memoria en Python. El punto clave es comprender el valor de estos conceptos para escribir código Python limpio, eficiente y efectivo.