Sobes.tech
Junior

Каква е разликата между файловете .py и .pyc?

sobes.tech AI

Отговор от AI

.py — това е изходният код на Python, написан от човек и четим от интерпретатора. .pyc — това е байткодът, компилиран от интерпретатора от .py файла, за да ускори следващите стартирания.

Интерпретаторът на Python автоматично компилира .py файловете в .pyc при първото импортиране на модул и ги запазва, за да не ги компилира отново при следващи стартирания. .pyc файловете се съхраняват в директорията __pycache__ или до съответния .py файл в по-старите версии.

# Пример за съдържание на `.py` файл
def greet(name):
  print(f"Здравей, {name}!")
# Байткод от `.pyc` файл (нечитаем директно)
# 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

Обобщение:

Файл Описание Цел Четливост
.py Изходен код Разработка, писане на логика Висока (човек)
.pyc Компилиран байткод Ускоряване на стартиране Ниска (машина)

Наличието на .pyc файлове не влияе върху изпълнението на кода, тъй като интерпретаторът ги използва само за оптимизация при зареждане на модули. Ако .py файлът бъде променен, .pyc файлът се създава автоматично отново.