__pycache__ va .pyc filelarning vazifalari
Python Fayllari (.py)
Hamma biladi: Python – bu juda oddiy, lekin kuchli dasturlash tili. Har bir dasturchi o'z kodini .py kengaytmasi bilan saqlaydi. Bu fayllarda biz python dasturlash tilida yozilgan kodlarni saqlashimiz va ulardan foydalanishimiz mumkin.
# hello.py
print("Salom, dunyo!")
Ushbu juda oddiy yozilgan kodimizni run qilganimizda avtomatik ravishda __pycache__ papkasi yaratiladi va uni ichidan .pyc qisqartmalik fayllarni topishingiz mumkin.Agar yozgan kodingiz juda kichik bo'lsa .pyc filelar yaratilmasligi mumkin. Bu holarda
python -m compileall
komandasi bilan barcha python filelar uchun .pyc fillarni yaratib olishingiz mumkin.
__pycache__ Papkasi va .pyc file nima?
Har safar o'zimizning hello.py faylini ishga tushirganda, Python avtomatik ravishda uni "bytecode" deb ataladigan maxsus shaklga kompilyatsiya qiladi va bu faylni __pycache__ deb nomlangan maxfiy papkaga joylashtiradi. Ana endi faylni ikkinchi marta ishga tushirganda, Python uni qayta kompilyatsiya qilmasdan, shu tayyor bytecode ni ishlatadi. Natija? Tezroq ishga tushadigan dastur! O'sha "bytecode" shakldagi malumotni saqlab turuvchi fayl bu .pyc filelar hisoblanadi.
bu fayl Python 3.8 versiyasi uchun hello.py faylining kompilyatsiyalangan shakli edi. "Salom, dunyo!" kodini Python orqasida yashirincha kompilyatsiya qilib, __pycache__ ga saqlab qo'ygan edi. Shu bilan bizning dastur tezroq ishlashni boshladi.
Misol bilan Ko'rib Chiqamiz
keling dasturni biroz o'zgartirib yozib ko'ramiz
# hello.py
print("Python – super!")
Agar dasturni qaytta ishga tushirsak avvalgi fayl yangilanib, yangi versiyasi yaratildi. Demak, Python doim kodni qayta kompilyatsiya qilib, bytecode ni saqlaydi.
__pycache__ dan foydalanish kerakmi?
Ha, albatta! Bu sizning dasturingizni tezroq ishlatadi. Masalan, Biz 10 ming qatordan iborat katta dastur yozgan bo'lsak, har safar kodni qayta kompilyatsiya qilish ko'p vaqt talab etishi mumkin. __pycache__ esa bu jarayonni tezlashtiradi.
__pycache__ ni o'chirish mumkinmi?
Albatta! Misol uchun, Biz o'z kodimizni boshqa joyga ko'chirishi yoki toza muhitda ish boshlamoqchi bo'lsak, u bu papkani bemalol o'chirib tashlashi mumkin. Lekin keyingi safar dastur ishga tushganda Python yana bu bytecode ni qayta yaratadi.
.pyc fileni o'zini run qilib ishlatish mumkinmi?
Ha albatta oddiy python fileni run qilib ishlatgan kabi ishlatishimiz mumkin.
Keling endi biroz murakkabroq va dasturni ishga tushirganimizda boshqa fayllar bilan ham bog'lanadigan dastur yozamiz
bu dasturimiz ob-havo bo'yicha malumotlarni olib malumotlarni analiz qilib shu asosida natijani graph ko'rinishida ko'rsatib beradi.Shu 3 ta vazifani bajarishni 3 ta alohida alohida fayllarda yozib ko'ramiz. Endi dasturimizni ishga tushiganimizda alohida alohida her biz fayl uchun .pyc qisqartmalik fayllar yaratiladi.
Ammo bu safar oddiygina qilib python orqali main.cpython-38.pyc faylni ishga tushirmoqchi bo'lganimizda xatolik beradi.Agar dasturimiz hammasi 1 ta faylda yozilgan bo'lmasa biz .pyc faylni ishga tushirishimiz uchun alohida pythonning importlib kutubxonasidan foydalanishimiz kerak bo'ladi.
python faylni ishga tushirish orqali natijasini olishimiz mumkin.
"bytecode" ga aylangan faylni ortga qaytarish mumkinmi?
ha albatta .pyc faylimizni orqaga decompile qilishimiz mumkin. buning uchun
1. pip install decompyle3==3.8
2. decompyle3 -o . __pycache__/main.cpython-38.pyc
.pyc ning Foydasi
.pyc fayllar dasturingizni tezlashtiradi. Agar siz kodni qayta-qayta ishlatsangiz, Python har safar uni boshidan kompilyatsiya qilmasdan, tayyor bytecode ni ishlatadi. Bu esa kodingizni juda tez bajarishga yordam beradi, ayniqsa katta loyihalar uchun.
__pycache__ dan Tez-tez Foydalanish
__pycache__ – bu Pythonning yashirin yordamchisi. Agar siz kodni ko'p bora ishlatmoqchi bo'lsangiz, __pycache__ uning tezligini oshiradi. Ammo, bu papkani o'chirsangiz ham, Python keyingi safar yana yangi bytecode yaratadi. Shuning uchun __pycache__ ni o'chirish sizga zarar qilmaydi, faqat dasturingizni ishga tushirishda biroz sekinlashishga olib kelishi mumkin.
Xulosa
- .pyc fayllar – Pythonning bytecode ga aylantirilgan versiyalari.
- __pycache__ papkasi – kompilyatsiyalangan fayllarni saqlash uchun ishlatiladi va dasturingizning ishlash tezligini oshiradi.
- Dekompilyatsiya qilish orqali .pyc fayllarni asl .py fayl holatiga qaytarish mumkin.
Agar siz Python dasturlash tilida ishlayotgan bo'lsangiz, .pyc va __pycache__ sizning asosiy sirli yordamchilaringizdan biri bo'ladi!