ورقة مساعدة لبايثون - أجزاء مفيدة من كود بايثون.

الكود البرمجي لبايثون المطلوب بشكل متكرر

Page content

أحيانًا أحتاج إلى هذا ولكن لا أستطيع العثور عليه فورًا.
لذلك أحتفظ بهم جميعًا هنا.

هم ليسوا شيئًا جديدًا،
فقط مجموعة من النسخ ولصق،
لكنها تعمل لدي،
وأتمنى أن تجدوا أيضًا أنها مفيدة لكم.

Awesome Python in 3d

الأوامر الشائعة لـ Anaconda

الرجاء الاطلاع على uv - حزمة بايثون الجديدة، وإدارة المشاريع والبيئات

التحقق من تثبيت Conda

conda -V

التحقق من أن Conda محدث

conda update conda

إنشاء بيئة افتراضية

conda create -n newenvname python=3.12 anaconda

تفعيل بيئة افتراضية

source activate newenvname

تثبيت حزم بايثون إضافية في بيئة افتراضية

conda install -n newenvname [package]

إيقاف تفعيل بيئة افتراضية

source deactivate

حذف بيئة افتراضية

conda remove -n newenvname --all

اعتمادات البرنامج

تثبيت الاعتمادات - باستخدام ملف الاعتمادات

بدلاً من تثبيت الحزم بشكل فردي، يسمح pip لك بإعلان جميع الاعتمادات في ملف الاعتمادات. على سبيل المثال، يمكنك إنشاء ملف requirements.txt يحتوي على:

requests==2.18.4
google-auth==1.1.0

ثم تخبر pip بتثبيت جميع الحزم في هذا الملف باستخدام العلم -r:

python3 -m pip install -r requirements.txt

تجميد الاعتمادات

يمكن لـ pip تصدير قائمة بجميع الحزم المثبتة ونسخها باستخدام أمر Freeze:

python3 -m pip freeze

سينتج عنه شيء مثل

requests==2.18.4
google-auth==1.1.0

أمر Freeze في pip مفيد لإنشاء ملفات اعتمادات يمكنها إعادة إنشاء إصدارات دقيقة لجميع الحزم المثبتة في بيئة معينة.

رسم مستطيل

import cv2

cv2.rectangle(img, (x1, y1), (x2, y2), color=(255,0,0), thickness=2)

x1,y1 ------
|          |
|          |
|          |
--------x2,y2

لإضافة الأسئلة التالية:

cv2.imwrite("my.png",img)

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==الانتظار إلى الأبد

لديني كائن صورة من PIL وأريد رسم مستطيل على هذه الصورة. أريد استخدام opencv2 لرسم مستطيل، ثم تحويله مرة أخرى إلى كائن صورة من PIL. إليكم الطريقة التي أقوم بها:

# im هو كائن صورة من PIL
im_arr = np.asarray(im)
# تحويل مصفوفة rgb إلى تنسيق bgr لـ opencv
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 وpts2 هي إحداثيات الزاوية العلوية اليسرى والزاوية السفلى اليمنى للمستطيل
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# تحويل مرة أخرى إلى كائن صورة
im = Image.fromarray(im_arr)

تحليل الحجج بسهولة

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('تحويل بعض الأشياء من {} إلى {}'.format(src_file, tgt_file))

#---------------------------------------------------------------------------
def run():
    import argparse

    parser = argparse.ArgumentParser(description="أداة بايثون قوية وفعالة للغاية.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="اسم ملف المدخل json")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="اسم ملف المخرج json")
    
    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

ثم قم بتشغيله مثل:

python ave_roma.py --src 1.json --tgt 2.json

تحميل وحفظ json

import json

def do_convert(src_file, tgt_file):

    with open(src_file) as f:
        src = json.load(f)

    tgt = src # :)

    with open(tgt_file, 'w', encoding='utf-8') as f:
        json.dump(tgt, f, ensure_ascii=False, indent=4)

الحصول على اسم الملف دون التمديد

import os

print(os.path.splitext("/path/to/some/file.txt")[0])

سيطبع:

/path/to/some/file

روابط مفيدة