Назад к вопросам
Junior
72
questionbank

В чем отличие между файлами .py и .pyc?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

Интерпретатор Pythona автоматически компилирует .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\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 файл автоматически пересоздается.