recent
أخبار ساخنة

التعامل مع نظام البايثون من خلال مكتبة sys الدرس |14|

الصفحة الرئيسية
sys module python

مكتبة نظام بايثون sys module

تعني sys مكتبة النظام و هي إختصاص للكلمة System و تختص و تهتم بالوظائف الخاصة بالنظام وتعطي الكثير من الإمكانيات للبئية التي يعمل عليها البايثون.

الـ sys module هو يتعامل مع stdout و stdin و stderr و المدخلات argv.

لمعرفة إصدار البايثون في النظام الخاص بنا نقوم بكتابة الأمر الآتي في الشل او أي محرر نستخدمه للبايثون.

>>> import sys
>>> print("Python version", sys.version)
Python version 3.9.2 (default, Feb 28 2021, 17:03:44)

نلاحظ أنه عند تشغيل الكود طبع لنا إصدار البايثون الحالي الذي اعمل به وهو 3.9.2.


أمثلة متعددة لإستخدام مكتبة sys في بايثون

المثال الأول

>>>import sys
>>>sys.stdout.write("hello world")
'hello world11'

في هذا المثال قلنا للشل اقرأ لنا نص str ينطبع لنا على الشاشة وهو كلمة hello world و بالفعل طبعها لنا و طبع بجانبها رقم 11 وهذا الرقم يعني عدد احرف الكلمة مع حسب المسافة الفاصله ايضاً.

>>>import sys
>>>sys.stderr.write("Error")
Error5

قلنا له اطبع لنا على الشاشة خطأ error و طبع لنا Error بلون احمر و بجانبها رقم5 عدد الاحرف.

>>>import sys
>>>sys.stdin.read(5)

معنى هذا قراءة محتوى يدخله المُستخدم و يجب إدخال أي كلمة من خمس خانات لأننا حددنا له رقم 5 ,فإذا كتبنا شيئ أقل من 5 خانات سيبقى يطلب باقي الأحرف مثلاً كتبنا ali سوف يبقى ينتظر مننا كتابة حرفين آخرين حسب المطلوب منه, وفي حال كتبنا كلمة اكثر من خمسة احرف سوف يأخذ منها فقط أول خمس حروف فقط.

>>>sys.argv
['']

نُلاحظ أنه طَبَعَ لنا المصفوفة فارغة, هذا يمكّننا بإدخال مُدخلات لهذا الملف الذي نعمل عليه.

المثال الثاني

import sys
ilen = len(sys.argv)
if ilen != 1 :
  print(sys.argv)
else:
  print("no Inputs")

عند تشغيل هذا الملف سوف يطبع لنا no Inputs هذا يعني اننا لم ندخل اي كلمه في هذا الملف لهذا طبع لنا no Inputs , فإذا ادخلنا له اي كلام سوف يطبع لنا كل المدخلات و مسار تواجد الملف.

المثال الثالث

import sys
ilen = len(sys.argv)
if ilen != 1 :
    name = sys.argv[1]
    age = sys.argv[2]
    print(name)
    print(age)
else:
    print("no Inputs")

سوف يطلب منا مدخلين و هما الأسم و العمر, عندما نكتبها له سوف يطبعها على الشاشة.

google-playkhamsatmostaqltradent