Tôi cần chạy lệnh shell không đồng bộ từ tập lệnh Python. Điều này có nghĩa là tôi muốn tập lệnh Python của tôi tiếp tục chạy trong khi lệnh bên ngoài tắt và thực hiện bất cứ điều gì cần làm.Làm cách nào để chạy lệnh ngoài không đồng bộ từ Python?
Tôi đọc bài này:
sau đó tôi đã đi ra và đã làm một số thử nghiệm, và có vẻ như os.system()
sẽ thực hiện công việc với điều kiện là tôi sử dụng &
vào cuối của lệnh để tôi không phải đợi nó quay trở lại. Những gì tôi đang tự hỏi là nếu đây là cách thích hợp để thực hiện một điều như vậy? Tôi đã thử commands.call()
nhưng nó sẽ không làm việc cho tôi bởi vì nó chặn trên lệnh bên ngoài.
Vui lòng cho tôi biết nếu sử dụng os.system()
cho điều này là được khuyến khích hoặc nếu tôi nên thử một số tuyến đường khác.
Bạn cũng có thể sử dụng thăm dò ý kiến () để kiểm tra xem quá trình con đã chấm dứt hay sử dụng wait() để chờ kết thúc. –
Adam, rất đúng, mặc dù nó có thể là tốt hơn để sử dụng giao tiếp() để chờ đợi bởi vì đó là xử lý tốt hơn các bộ đệm vào/ra và có những tình huống mà lũ lụt có thể chặn. –
Adam: tài liệu nói "Cảnh báo Điều này sẽ bế tắc nếu quá trình con tạo ra đủ đầu ra cho đường ống stdout hoặc stderr sao cho nó chặn bộ đệm ống hệ điều hành chấp nhận nhiều dữ liệu hơn. Sử dụng giao tiếp() để tránh điều đó. " Tuy nhiên, –