Junior
Aký je rozdiel medzi súbormi .py a .pyc?
sobes.tech AI
Odpoveď od AI
.py — je zdrojový kód v Pythone, napísaný človekom a čitateľný interpretátorom. .pyc — je skompilovaný bajtový kód z .py súboru, ktorý sa používa na zrýchlenie ďalších spustení.
Python interpretátor automaticky kompiluje .py súbory do .pyc pri prvom importe modulu a ich ukladá, aby ich pri ďalších spusteniach nemusel znovu kompilovať. .pyc súbory sa ukladajú v adresári __pycache__ alebo vedľa príslušného .py súboru v starších verziách.
# Príklad obsahu `.py` súboru
def greet(name):
print(f"Ahoj, {name}!")
# Bytecode zo súboru `.pyc` (nečitateľný priamo)
# c\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
Zhrnutie:
| Súbor | Popis | Účel | Čitateľnosť |
|---|---|---|---|
.py |
Zdrojový kód | Vývoj, písanie logiky | Vysoká (človekom) |
.pyc |
Preložený bajtový kód | Rýchlejšie spustenie | Nízka (strojom) |
Prítomnosť .pyc súborov neovplyvňuje vykonávanie kódu, pretože ich interpretátor používa iba na optimalizáciu načítania modulov. Ak sa .py súbor zmení, .pyc súbor sa automaticky znovu vytvorí.