ورقة مساعدة لبايثون

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

Page content

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

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

Awesome Python in 3d

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

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

conda -V

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

conda update conda

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

conda create -n newenvname python=3.12 anaconda

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

source activate newenvname

تثبيت حزم Python الإضافية في بيئة افتراضية

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

يُعد أمر pip freeze مفيدًا لإنشاء ملفات الاعتمادات التي يمكن إعادة إنشاء النسخ المحددة تمامًا من جميع الحزم المثبتة في بيئة معينة.

رسم مربع

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==wait forever

لديني كائن صورة من 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('Converting some stuff from {} to {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Some mega useful and efficient python tool.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="input json filename")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="output json filename")
    
    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

روابط مفيدة