Junior
Mi a különbség a .py és a .pyc fájlok között?
sobes.tech MI
Válasz az MI-től
.py — ez a Python forráskód, amit egy ember írt és az értelmező olvashat. .pyc — az értelmező által a .py fájlból fordított bájtkód, amely a későbbi indítások gyorsítására szolgál.
A Python értelmező automatikusan fordítja a .py fájlokat .pyc-vé az első modulimport során, és elmenti azokat, hogy a következő futtatásoknál ne kelljen újra fordítani. A .pyc fájlokat a __pycache__ könyvtárban vagy régebbi verziókban a megfelelő .py mellett tárolja.
# Példa egy `.py` fájl tartalmára
def greet(name):
print(f"Szia, {name}!")
# A `.pyc` fájlból származó bájtkód (közvetlenül nem olvasható)
# 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
Összefoglalva:
| Fájl | Leírás | Cél | Olvashatóság |
|---|---|---|---|
.py |
Forráskód | Fejlesztés, logika írása | Magas (ember által) |
.pyc |
Fordított bájtkód | Indítás gyorsítása | Alacsony (gép által) |
A .pyc fájlok megléte nem befolyásolja a kód végrehajtását, mivel az értelmező csak a modulok betöltésének optimalizálására használja őket. Ha a .py fájl módosul, a .pyc automatikusan újra lesz készítve.