أدوات CLI المخفية في مكتبة بايثون القياسية

أدوات CLI في بايثون هي برامج يتم تشغيلها من سطر الأوامر. يمكن استخدامها لأداء مجموعة متنوعة من المهام، مثل إدارة الملفات والأنظمة، ومعالجة البيانات، وإنشاء البرامج النصية.

تتميز أدوات CLI بأنها قوية وفعالة، ويمكن استخدامها على أي نظام تشغيل يدعم بايثون. كما أنها سهلة التعلم والاستخدام، مما يجعلها خيارًا جيدًا للمبتدئين.

و يحتوي بايثون على مجموعة متنوعة من أدوات CLI المخفية في مكتبته القياسية. يمكن استخدام هذه الأدوات لأداء مجموعة متنوعة من المهام، مثل:

  • التحقق من صحة البيانات: يمكن استخدام أدوات مثل argparse و validators للتحقق من صحة البيانات الواردة من المستخدمين.
  • التفاعل مع النظام: يمكن استخدام أدوات مثل os و subprocess للتفاعل مع النظام، مثل إدارة الملفات وتنفيذ الأوامر.
  • عرض المعلومات: يمكن استخدام أدوات مثل logging و rich لعرض المعلومات بطريقة غنية بالمعلومات.

فيما يلي بعض الأمثلة على أدوات CLI المخفية في مكتبة بايثون القياسية:

  • argparse: يمكن استخدام argparse لإنشاء واجهات مستخدم سطر الأوامر (CLI) قابلة للتخصيص.
  • validators: يمكن استخدام validators للتحقق من صحة البيانات الواردة من المستخدمين.
  • os: يمكن استخدام os للوصول إلى الملفات والدوائر والأنظمة.
  • subprocess: يمكن استخدام subprocess لتشغيل البرامج الخارجية.
  • logging: يمكن استخدام logging لتسجيل أحداث البرنامج.
  • rich: يمكن استخدام rich لعرض المعلومات بطريقة غنية بالمعلومات.

argparse

argparse هو وحدة في مكتبة بايثون القياسية تُستخدم لتحليل سطور الأوامر. و يسمح لك بإنشاء واجهات سطر أوامر واضحة وسهلة الاستخدام لبرامجك.

يوفر argparse مجموعة متنوعة من الميزات لتحليل سطور الأوامر، بما في ذلك:

  • دعم للحجج الاختيارية والاختيارية
  • دعم للاختصارات
  • دعم للقيم المكررة
  • دعم للوحدات الفرعية

لاستخدام argparse، تحتاج أولاً إلى إنشاء معالج argparse. و يمكنك القيام بذلك باستخدام التابع ArgumentParser() من وحدة argparse.

بعد إنشاء معالج argparse، يمكنك إضافة الحجج إلى المعالج باستخدام التابع add_argument(). حيث يأخذ معلمات مختلفة تحدد نوع الحجة والقيمة الافتراضية للحجة وما إذا كانت الحجة مطلوبة أم اختيارية.

بمجرد إضافة جميع الحجج إلى المعالج، يمكنك تحليل سطر الأوامر باستخدام التابع parse_args(). حيث يرجع طريقة كائنًا يمثل الحجج التي تم تمريرها إلى البرنامج.

فيما يلي مثال بسيط على استخدام argparse:

 import argparse

def main():
    parser = argparse.ArgumentParser(description="A simple example of argparse.")

    parser.add_argument("filename", type=str, help="The name of the file to read.")
    parser.add_argument("-c", "--count", type=int, help="The number of lines to read.", default=10)

    args = parser.parse_args()

    print("Reading file:", args.filename)

    with open(args.filename, "r") as f:
        for i in range(args.count):
            line = f.readline()
            print(line)

if __name__ == "__main__":
    main()


سيؤدي هذا البرنامج إلى إنشاء واجهة سطر أوامر تسمح للمستخدم بقراءة عدد معين من الأسطر من ملف. يمكن للمستخدم تحديد اسم الملف باستخدام ال argument "filename". يمكن للمستخدم أيضًا تحديد عدد الأسطر المراد قراءتها باستخدام ال argument "count". إذا لم يحدد المستخدم قيمة لـ “count”، فسيتم استخدام القيمة الافتراضية 10.

فيما يلي مثال على كيفية استخدام هذا البرنامج:

$ python argparse_example.py myfile.txt
Reading file: myfile.txt
This is line 1.
This is line 2.
...
This is line 10.

للحصول على مزيد من المعلومات حول argparse، راجع وثائق Python الرسمية.

فيما يلي بعض الأمثلة الأخرى لاستخدام argparse:

  • برنامج لتحويل ملفات النص من تنسيق إلى آخر
  • برنامج لتشغيل مجموعة من الاختبارات
  • برنامج لإنشاء تقارير

validators

يمكن إجراء فحص البيانات باستخدام أدوات مثل assert و try/except. ومع ذلك، فإن هذه الطرق يمكن أن تكون معقدة وصعبة الإدارة.

validators هي مكتبة يمكن استخدامها للتحقق من صحة البيانات الواردة من المستخدمين. يمكن استخدام validators للتحقق من صحة تنسيق البيانات، مثل صحة البريد الإلكتروني أو رقم الهاتف.

على سبيل المثال، يمكن استخدام validators للتحقق من صحة عنوان البريد الإلكتروني الواردة من المستخدم. يمكن أن تبدو الدالة كما يلي:

from validators import EmailValidator

def validate_email(email):
    return EmailValidator().validate(email)

if __name__ == "__main__":
    email = "johndoe@example.com"
    print(validate_email(email))

سيؤدي تشغيل هذا البرنامج إلى طباعة True.

مكتبة validators هي أداة مفيدة لفحص البيانات في بايثون. يمكن استخدامها لتحسين جودة الكود ومنع الأخطاء.

فيما يلي بعض الفوائد لاستخدام مكتبة validators:

  • تجعل من السهل فحص البيانات بطرق محددة.
  • توفر مجموعة واسعة من أدوات التحقق من صحة البيانات.
  • سهلة الاستخدام والتعلم.
  • مفتوحة المصدر ومجانية.

os


مكتبة os في بايثون هي مكتبة توفر مجموعة متنوعة من الدوال والوظائف التي تمكن المبرمجين من التعامل مع نظام التشغيل، بما في ذلك إنشاء وحذف الملفات والمجلدات، وقراءة وكتابة البيانات من الملفات، ومعرفة معلومات حول نظام التشغيل، وتنفيذ الأوامر على نظام التشغيل.

على سبيل المثال، يمكن استخدام os لإنشاء ملف جديد:

import os

def create_file(filename):
    os.makedirs("./files", exist_ok=True)
    with open(f"./files/{filename}", "w") as f:
        f.write("This is a new file.")

if __name__ == "__main__":
    create_file("my_file.txt")

سيؤدي تشغيل هذا البرنامج إلى إنشاء ملف جديد باسم my_file.txt في مجلد ./files.

تطبيقات مكتبة os في بايثون

  • أتمتة المهام المتكررة على نظام التشغيل، مثل إنشاء ملفات تلقائيًا أو حذف الملفات القديمة.
  • تطوير تطبيقات سطح المكتب التي تتفاعل مع نظام التشغيل، مثل التطبيقات التي تفتح أو تغلق الملفات أو تقرأ من أو تكتب إلى مجلد.
  • تطوير تطبيقات الويب التي تستخدم نظام التشغيل لتنفيذ المهام، مثل تطبيقات الويب التي تقوم بإنشاء ملفات مؤقتة أو تحذف الملفات القديمة.

ملاحظات:

  • مكتبة os توفر مجموعة متنوعة من الدوال والوظائف، ولكن ليس كل الدوال والوظائف متاحة على جميع أنظمة التشغيل.
  • يجب استخدام مكتبة os بعناية لتجنب حدوث أي مشاكل مع نظام التشغيل.

subprocess

subprocess هي مكتبة يمكن استخدامها لتشغيل البرامج الخارجية. و يمكن استخدامها لتشغيل البرامج النصية وتطبيقات الطرف الثالث.

على سبيل المثال، يمكن استخدام subprocess لتشغيل مترجم Python:

import subprocess

def run_python_script(script_path):
    subprocess.run(["python3", script_path])

if __name__ == "__main__":
    run_python_script("my_script.py")

سيؤدي تشغيل هذا البرنامج إلى تشغيل ملف my_script.py باستخدام مترجم بايثون.

logging

هي مكتبة بايثون توفر بنية متكاملة لتسجيل المعلومات من تطبيقك. يمكن استخدامها لتتبع تقدم التطبيق، وتسجيل الأخطاء، وتوفير معلومات حول أداء التطبيق.

مستويات التسجيل

تدعم مكتبة logging خمسة مستويات تسجيل:

  • CRITICAL: يدل على خطأ خطير قد يؤدي إلى فشل التطبيق.
  • ERROR: يدل على خطأ غير خطير قد يؤثر على أداء التطبيق.
  • WARNING: يدل على تحذير قد يؤدي إلى مشاكل في التطبيق.
  • INFO: يدل على معلومات عامة حول التطبيق.
  • DEBUG: يدل على معلومات مفصلة حول التطبيق.

كيفية استخدام logging

لبدء استخدام مكتبة logging، تحتاج إلى استيرادها أولاً:

import logging

ثم، يمكنك إنشاء مسجل جديد:

logger = logging.getLogger(__name__)

بمكنك بعد ذلك استخدام التابع log() لتسجيل المعلومات:

logger.log(logging.INFO, "This is an information message")

يمكنك أيضًا استخدام التابع debug() لتسجيل معلومات مفصلة:

logger.debug("This is a debug message")

إعداد التسجيل

يمكنك إعداد تسجيل التطبيق الخاص بك عن طريق تعديل ملف logging.conf. هذا الملف عبارة عن ملف نصي يحدد إعدادات تسجيل التطبيق.

فيما يلي مثال على ملف logging.conf:

[loggers]
keys = root

[handlers]
keys = console

[formatters]
keys = simple

[logger_root]
level = DEBUG
handlers = console

[handler_console]
class = StreamHandler
level = DEBUG
formatter = simple
args = (sys.stdout,)

[formatter_simple]
format = %(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt = %Y-%m-%d %H:%M:%S

هذا الملف يحدد مسجلًا واحدًا باسم root بمستوى تسجيل DEBUG. يحدد أيضًا معالجًا واحدًا باسم console يستخدم تنسيقًا بسيطًا لإخراج المعلومات إلى وحدة التحكم.

أمثلة

فيما يلي بعض الأمثلة على استخدام مكتبة logging:

# مثال على تسجيل معلومات
logger.log(logging.INFO, "This is an information message")

# مثال على تسجيل تحذير
logger.warning("This is a warning message")

# مثال على تسجيل خطأ
logger.error("This is an error message")

# مثال على تسجيل معلومات مفصلة
logger.debug("This is a debug message")

ملاحظات

  • مكتبة logging هي مكتبة قوية يمكن استخدامها لتتبع تقدم تطبيقك وتسجيل الأخطاء.
  • يمكنك تكوين تسجيل التطبيق الخاص بك عن طريق تعديل ملف logging.conf.
  • هناك العديد من الأمثلة على استخدام مكتبة logging متاحة على الإنترنت.

rich

rich هي مكتبة يمكن استخدامها لعرض المعلومات بطريقة غنية بالمعلومات. يمكن استخدام rich لعرض النص والصور والرسومات.

بعض الميزات الرئيسية لـ Rich بايثون:

  • دعم مجموعة واسعة من تنسيقات النص، بما في ذلك الجداول والأشكال والمخططات.
  • قابلية تخصيص عالية، مما يسمح لك بإنشاء تنسيقات نصية مخصصة.
  • سهل الاستخدام، مع واجهة برمجة تطبيقات بسيطة.

على سبيل المثال، يمكن استخدام rich لعرض رسالة مرحبًا:

import rich

def say_hello():
    return rich.print(rich.markdown("**Hello, world!**"))

if __name__ == "__main__":
    say_hello()

سيؤدي تشغيل هذا البرنامج إلى عرض رسالة مرحبًا بتنسيق markdown.

فوائد استخدام Rich بايثون:

هناك العديد من الفوائد لاستخدام Rich بايثون، بما في ذلك:

  • سهولة الاستخدام: Rich بايثون مكتبة بسيطة وسهلة الاستخدام، مما يجعلها مناسبة للمبتدئين.
  • قابلية التخصيص: Rich بايثون مكتبة قابلة للتخصيص للغاية، مما يسمح لك بإنشاء تنسيقات نصية مخصصة.
  • التنوع: Rich بايثون مكتبة شاملة تدعم مجموعة واسعة من تنسيقات النص.

هذه مجرد أمثلة قليلة على أدوات CLI المخفية في مكتبة Python القياسية. هناك العديد من الأدوات الأخرى المتاحة، لذا من المهم استكشاف مكتبة Python القياسية للعثور على الأدوات التي تحتاجها.


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading