تنفيذ أوامر Shell غير المتزامنة في Python: استكشاف الأساليب البديلة
يعد تشغيل الأوامر الخارجية بشكل غير متزامن من نصوص Python أسلوبًا قيمًا يسمح بتنفيذ البرنامج النصي المستمر بينما تؤدي الأوامر الخارجية مهامها. تستكشف هذه المقالة الطرق المناسبة لتحقيق هذا السلوك غير المتزامن، مع التركيز على استخدام os.system() والعملية الفرعية.Popen.
os.system() ورمز العلامة
استخدام os.system() مع علامة العطف (&) في نهاية الأمر يمكن بالفعل إنشاء عملية منفصلة تعمل بشكل غير متزامن. ومع ذلك، فإن هذه الطريقة لها قيود ولا تعتبر النهج الموصى به للتنفيذ غير المتزامن.
]&&&]عملية فرعية.Popen - بديل متفوق
لتنفيذ موثوق للأوامر غير المتزامنة، يجب استخدام العملية الفرعية. بوبين هو الخيار المفضل. فهو يوفر نطاقًا واسعًا من التحكم في العمليات الفرعية، مما يسمح لك بما يلي:• إنشاء عمليات غير متزامنة باستخدام Popen() • تنفيذ المهام بشكل متزامن بينما تكون العملية الفرعية نشطة • قم بإنهاء العملية باستخدام إنهاء () • الاستعلام عن حالة التشغيل باستخدام poll() • التواصل معها باستخدام stdin وstdout• Create asynchronous processes with Popen() • Perform tasks concurrently while the child process is active • Terminate the process with terminate() • Query its running status with poll() • Communicate with it using stdin and stdout
مثال لاستخدام العملية الفرعية.Popen
من استيراد العملية الفرعية Popen p = Popen(['watch', 'ls']) # استبدل بالأمر الخاص بك # يمكن تشغيل تعليمات برمجية أخرى هنا أثناء تنفيذ الأمر p.terminate() # أوقف العملية عند الضرورة• Create asynchronous processes with Popen() • Perform tasks concurrently while the child process is active • Terminate the process with terminate() • Query its running status with poll() • Communicate with it using stdin and stdout
الاستنتاجبينما يمكن أن يوفر نظام os.system() مستوى أساسيًا من التنفيذ غير المتزامن، فإن subprocess.Popen يوفر حل أكثر قوة ومرونة للتحكم في العمليات الفرعية والتفاعل معها. إن تعدد استخداماتها وسهولة استخدامها يجعلها الطريقة الموصى بها لتنفيذ أوامر الصدفة غير المتزامنة في بايثون.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3