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 файлът се създава автоматично отново.