تنفيذ الأوامر الخارجية بشكل غير متزامن من Python
يعد تنفيذ الأوامر الخارجية بشكل غير متزامن مطلبًا شائعًا في سيناريوهات البرمجة النصية. في بايثون، يمكن تحقيق ذلك من خلال طرق مختلفة.
أحد الخيارات هو استخدام os.system، والذي يسمح بتشغيل أوامر غير محظورة عن طريق إلحاق علامة العطف (&) في النهاية. ومع ذلك، تعتبر هذه الطريقة مهملة وغير موصى بها بسبب مشاكل محتملة في تفاعل الصدفة.
هناك طريقة أكثر مثالية وهي استخدام العملية الفرعية.Popen، والتي توفر واجهة برمجة تطبيقات أكثر شمولاً وقوة لإدارة العمليات الخارجية. باستخدام Popen، يمكن إطلاق الأوامر بشكل غير متزامن، مما يسمح لبرنامج Python النصي بمواصلة التنفيذ أثناء تشغيل الأمر الخارجي في الخلفية.
from subprocess import Popen
p = Popen(['watch', 'ls']) # something long running
# ... do other stuff while subprocess is running
p.terminate()
في هذا المثال، يتم إنشاء مثيل Popen، وتمرير الأمر ووسائطه. يمكن لبرنامج Python النصي بعد ذلك متابعة المهام الأخرى أثناء تشغيل الأمر الخارجي بشكل غير متزامن. لاحقًا، يمكن الاستعلام عن مثيل Popen للحالة (على سبيل المثال، باستخدام استطلاع())، أو الاتصال به (على سبيل المثال، عبر communication())، أو إنهاؤه.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3