اهلا ومرحبا بكم في مدونه : Cyber1101 انظم للمجتمع

Subprocess Python مكتبة subprocess

 




مكتبة subprocess 


مكتبة "subprocess" في بايثون تستخدم لتشغيل أوامر النظام والعمليات من داخل برنامج بايثون. يمكن استخدامها لإطلاق تطبيقات خارجية والتحكم في تفاعلها مع البرنامج الرئيسي.

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

يمكن استخدام هذه المكتبة لإطلاق التطبيقات على أنظمة التشغيل Windows، Linux و MacOS، وهي مفيدة جدًا في حالات البرمجة النصية وأتمتة العمليات.

استخدام subprocess 



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


على سبيل المثال، يمكن استخدام subprocess لتشغيل برنامج قائم على سطر الأوامر مثل Git وتنفيذ أوامر Git من داخل البرنامج. يمكن استخدام الأساليب Popen و call و check_call و check_output لتشغيل العملية والتحكم في إدخالاتها وإخراجها.


فيما يلي مثال بسيط لاستخدام subprocess لتشغيل الأمر "ls" في نظام التشغيل Linux:


import subprocess

output = subprocess.check_output(["ls", "-l"])
print(output)



سيتم تشغيل الأمر "ls -l" وسيتم طباعة الإخراج الناتج في متغير output .


دوال مكتبة subprocess 


مكتبة subprocess في Python تسمح لك بتشغيل العمليات الخارجية من داخل برنامج Python. وهناك عدة دوال مفيدة في هذه المكتبة، وهي:


subprocess.run()

تستخدم لتشغيل الأوامر الخارجية وانتظار انتهائها. يتم إرجاع كائن

CompletedProcess

الذي يحتوي على معلومات حول نتيجة التشغيل.


subprocess.call()

يستخدم لتشغيل الأوامر الخارجية وانتظار انتهائها. يتم إرجاع قيمة صفر في حالة انتهاء الأمر بنجاح.


subprocess.Popen()

تستخدم لتشغيل الأوامر الخارجية وإرجاع معالج (process) المنشئ. يمكن استخدام هذا المعالج للتحكم في تشغيل الأمر.


subprocess.check_output()

تستخدم لتشغيل الأوامر الخارجية وإرجاع الإخراج الذي تولده الأمر. يتم إثارة خطأ إذا انتهى الأمر بفشل.

هذه هي بعض الدوال الأساسية في مكتبة subprocess، وهناك دوال أخرى مثل subprocess.check_call() و subprocess.getoutput() وغيرها.


subprocess.run() 



subprocess.run() هي وظيفة في لغة بايثون تستخدم لتشغيل عملية جديدة (process) من داخل برنامج بايثون. يمكن استخدامها لتشغيل أي سطر أو أمر قابل للتنفيذ في نظام التشغيل الحالي.


تأخذ subprocess.run() مجموعة من المعلمات، بما في ذلك الأمر الذي يجب تشغيله والمتغيرات البيئية والمسار الذي يجب تشغيل الأمر فيه. يمكن استخدامها لتشغيل أي نوع من الأوامر، بما في ذلك تطبيقات خارجية أو أوامر نظام التشغيل المختلفة.


وتعود قيمة الدالة subprocess.run() إلى كائن يحتوي على معلومات حول العملية التي تم تشغيلها، مثل الناتج القياسي (stdout) والناتج الخطأ (stderr) والحالة الخروجية (exit code).


subprocess.call() 


دالة subprocess.call() في بايثون تستخدم لتشغيل أمر في نظام التشغيل الخاص بك وانتظار انتهاء تنفيذه قبل المتابعة. يمكن استخدام هذه الدالة لتشغيل الأوامر التي تحتاج إلى تفاعل مع النظام الأساسي، مثل إنشاء ملفات جديدة أو نقلها أو حذفها.


تأخذ دالة subprocess.call() عادةً قائمة من السلاسل النصية كمدخلات، والتي تشير إلى الأمر الذي يجب تنفيذه والمعاملات التي يجب تمريرها لهذا الأمر. يتم تنفيذ الأمر وإرجاع قيمة صفر إذا تم تنفيذه بنجاح.


على سبيل المثال، يمكن استخدام الدالة subprocess.call() لتشغيل الأمر "ls" (لعرض قائمة بالملفات والمجلدات في الدليل الحالي) كما يلي:


import subprocess

subprocess.call(["ls"])



ستقوم هذه الشفرة بتشغيل الأمر "ls" وسوف يتم عرض قائمة بجميع الملفات والمجلدات في الدليل الحالي.

subprocess.Popen()


subprocess.Popen() هي واحدة من دوال وحدة subprocess في لغة بايثون وتسمح لك بتشغيل عملية خارجية (external process) من داخل البرنامج الخاص بك. تقوم هذه الدالة بإعادة كائن يمكن استخدامه للتحكم في العملية الخارجية ومتابعة تفاصيلها.


إليك مثال بسيط يستخدم subprocess.Popen() :


import subprocess

process = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE)
output, error = process.communicate()

print(output.decode())



في هذا المثال، نقوم بتشغيل أمر

ls -l

باستخدام Popen() ونحفظ الخرج في متغير process . ثم نقوم بإنشاء اتصال بين العملية الخارجية وبرنامج بايثون باستخدام communicate() ونحفظ الناتج في المتغيرات output و error على التوالي. أخيرًا، نقوم بطباعة الناتج المخزن في output .


subprocess.check_output()


subprocess.check_output() هي دالة في بايثون تستخدم لتشغيل الأوامر في خط الأوامر من داخل برنامج بايثون والحصول على نتائجها كنص. تأخذ الدالة أمرًا وتنفذه ، وتعيد النص الذي يُكتب على المخرج القياسي (stdout) كنتيجة.


على سبيل المثال، يمكن استخدام subprocess.check_output() لتشغيل أمر "ls" في Linux والحصول على قائمة بجميع الملفات والمجلدات في الدليل الحالي:


import subprocess

output = subprocess.check_output(['ls'])
print(output.decode())



في هذا المثال ، تم تخزين النص الذي تم إرجاعه من subprocess.check_output() في المتغير output ويتم طباعته باستخدام print() . يتم فك تشفير النص باستخدام .decode() لإزالة أي شفرات الترميز مثل UTF-8 التي يمكن أن تظهر كرموز بدلاً من النص الفعلي.

إرسال تعليق

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.