Sobes.tech
Junior

.py va .pyc fayllari orasidagi farq nima?

sobes.tech AI

AIdan javob

.py — bu Python til yozilgan va interpretator tomonidan o'qilishi mumkin bo'lgan manba kodi. .pyc — bu .py faylidan kompilyatsiya qilingan bayt kod bo'lib, keyingi ishga tushirishlarni tezlashtirish uchun ishlatiladi.

Python interpretatori, modul birinchi import qilinganida .py fayllarini avtomatik ravishda .pyc ga kompilyatsiya qiladi va ularni saqlaydi, shunda keyingi ishga tushirishda qayta kompilyatsiya qilinmaydi. .pyc fayllari __pycache__ katalogida yoki eski versiyalarda mos .py fayli yonida saqlanadi.

# `.py` fayl mazmuni misoli
def greet(name):
  print(f"Salom, {name}!")
# `.pyc` faylidan bayt kod (to'g'ridan-to'g'ri o'qilmaydi)
# 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

Xulosa:

Fayl Tavsifi Maqsad O'qilishi
.py Manba kodi Dasturlash, mantiq yozish Yuqori (inson tomonidan)
.pyc Kompilyatsiya qilingan bayt kodi Ishga tushirishni tezlashtirish Past (mashina tomonidan)

.pyc mavjudligi kodning bajarilishiga ta'sir qilmaydi, chunki interpretator ularni faqat modullarni yuklashni optimallashtirish uchun ishlatadi. Agar .py fayli o'zgartirilsa, .pyc fayli avtomatik ravishda qayta yaratiladi.