Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Melaksanakan Perintah Luaran Secara Asynchronous daripada Python

Cara Melaksanakan Perintah Luaran Secara Asynchronous daripada Python

DDD
Lepaskan: 2024-10-22 20:46:26
asal
761 orang telah melayarinya

How to Execute External Commands Asynchronously from Python

Pelaksanaan Asynchronous Commands of External Commands from Python

Dalam skrip Python, selalunya diperlukan untuk menggunakan arahan luaran yang mungkin mengambil masa yang panjang. masa untuk disiapkan. Untuk memastikan skrip Python tidak terhenti semasa arahan ini dijalankan, pelaksanaan tak segerak dikehendaki. Percubaan sebelumnya menggunakan os.system() telah memasukkan penggunaan & untuk mencabut arahan daripada aliran skrip, tetapi kesesuaian pendekatan ini boleh dipersoalkan.

Penyelesaian yang lebih berkesan ialah fungsi subproses.Popen. Dengan Popen, anda boleh melancarkan arahan luaran tanpa menyekat pelaksanaan skrip Python. Pertimbangkan contoh berikut:

from subprocess import Popen
p = Popen(['watch', 'ls']) # something long running
# ... do other stuff while subprocess is running
p.terminate()
Salin selepas log masuk

Coretan kod ini menggunakan Popen untuk memulakan arahan jangka panjang (seperti 'watch ls'). Skrip Python kemudiannya boleh meneruskan tugasnya sendiri sementara arahan luaran kekal aktif. Apabila sesuai, tika Popen boleh ditamatkan menggunakan kaedah terminate().

Selain itu, Popen menawarkan fungsi tambahan seperti pengundian untuk status, menghantar input melalui stdin dan menunggu penamatan. Dengan memanfaatkan subproses.Popen, anda boleh menyepadukan pelaksanaan perintah luaran tak segerak dengan lancar ke dalam skrip Python anda.

Atas ialah kandungan terperinci Cara Melaksanakan Perintah Luaran Secara Asynchronous daripada Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan