Junior
¿Cuál es la diferencia entre archivos .py y .pyc?
sobes.tech AI
Respuesta de la IA
.py — es el código fuente en Python, escrito por una persona y legible por el intérprete. .pyc — es el bytecode compilado por el intérprete a partir del archivo .py para acelerar ejecuciones posteriores.
El intérprete de Python compila automáticamente los archivos .py en .pyc en la primera importación del módulo y los guarda para no recompilar en cada ejecución siguiente. Los archivos .pyc se almacenan en el directorio __pycache__ o junto al archivo .py correspondiente en versiones antiguas.
# Ejemplo del contenido de un archivo .py
def greet(name):
print(f"¡Hola, {name}!")
# Bytecode del archivo .pyc (no legible directamente)
# c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00s\x0e\x00\x00\x00d\x00\x00GHd\x01\x00k\x02\x00\x83\x01\x00\x00d\x02\x00R\x00\xfa\x0bgreet.py\x05\x00\x00\x00s\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00C\x00\x00\x00s\x05\x00\x00\x00\x83\x00\x00\x00\x00Sq\x00\x00\x00s\x0c\x00\x00\x00\\x01\x00\x00\x00\x00\x01\x00\x00\x00r\x02\x00\x00\x00r\x02\x00\x00\x00\xfa\x0b<frozen greet>\x01\x00\x00\x00s\x08\x00\x00\x00\xe9\x00\x00\x00\x00r\x03\x00\x00\x00r\x04\x00\x00\x00r\x0b\x00\x00\x00r\x04\x00\x00\x00N\x86\x04\x00\x00\x00GHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHG\x0c\x12\x00\x00\x00s\x00\x00\x00\x00
En resumen:
| Archivo | Descripción | Propósito | Legibilidad |
|---|---|---|---|
.py |
Código fuente | Desarrollo, escritura de lógica | Alta (por humanos) |
.pyc |
Bytecode compilado | Aceleración de inicio | Baja (por máquina) |
La existencia de .pyc no afecta la ejecución del código, ya que el intérprete solo los usa para optimizar la carga de módulos. Si se modifica un archivo .py, el archivo .pyc se vuelve a crear automáticamente.