"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تنفيذ تنفيذ أوامر Shell غير المتزامنة في بايثون؟

كيفية تنفيذ تنفيذ أوامر Shell غير المتزامنة في بايثون؟

تم النشر بتاريخ 2024-11-23
تصفح:628

How to Implement Asynchronous Shell Command Execution in Python?

تنفيذ أوامر Shell غير المتزامن في Python

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

العملية الفرعية: حل متفوق

بدلاً من os.system()، تقدم وحدة العمليات الفرعية حلاً أكثر ملاءمة في شكل فئة Popen. تتيح هذه الفئة التنفيذ السلس للأوامر طويلة الأمد بشكل غير متزامن، مما يسمح لبرنامج Python النصي بمواصلة تشغيله بينما يؤدي الأمر الخارجي مهامه.

التنفيذ

للتوضيح باستخدام Popen، خذ بعين الاعتبار المثال التالي:

from subprocess import Popen

# Initiate the long-running 'watch ls' command
p = Popen(['watch', 'ls'])

# Continue executing the Python script while the command runs
# ...

# Terminate the subprocess when necessary
p.terminate()

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

بيان الافراج يتم استنساخ هذه المقالة في: 1729581855 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3