Sobes.tech
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.