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