Tôi đang mở một chương trình sử dụng subprocess.Popen
Màn trình phụ được tạo ra từ một lệnh shell trong cửa sổ
import subprocess
prog = subprocess.Popen(['myprog', args], shell=True)
Tôi muốn theo dõi quá trình 'myprog' và chờ cho đến khi nó kết thúc trước khi tôi mã tiếp tục.
Vấn đề mà tôi đang gặp phải là prog.pid
là PID của trình bao chứ không phải 'myprog' và tôi không biết cách lấy PID của 'myprog'. Tôi cố gắng để sử dụng psutil
để tìm các quá trình con của prog.pid
:
parent = psutil.Process(prog.pid)
children = parent.children(recursive=True)
nhưng một danh sách trống được trả về.
Rất tiếc, tôi không thể khởi động 'myprog' mà không có trình bao. Khi tôi chạy lệnh với shell=False
Tôi nhận được thông báo lỗi sau: FileNotFoundError: [WinError 2] The system cannot find the file specified
Tôi có tìm kiếm trên web dẫn cao và thấp nhưng tất cả hứa hẹn là dành cho người dùng không có Windows.
bạn có chắc bạn không thể làm cho chương trình của bạn mà không có vỏ? Bạn có thể giải thích tại sao trong câu hỏi của bạn? có thể với dòng lệnh thực tế. Bởi vì đó là fixable. –
Tôi đang cố mở Atom bằng lệnh 'đường dẫn nguyên tử \ tới \ file \ để \ mở' – EDWhyte
và bạn có thể gõ' ở đâu nguyên tử' không?chúng ta sẽ đi đâu đó ở đây. –