Vì vậy, tôi đang cố gắng để truy vấn cho 3 CPU đầu quá trình "thâm" trên một máy nào đó, và tôi thấy lệnh này vỏ để làm điều đó: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
đường ống trong vỏ thông qua mô-đun Python subprocess
Tôi muốn sử dụng dữ liệu này bên trong một kịch bản Python, vì vậy tôi cần để có thể nắm bắt đầu ra của lệnh trên thông qua mô-đun subprocess
. Các công trình sau đây, nhưng chỉ cần trả về một chuỗi rất lớn kể từ khi tôi không hạn chế nó vào top 3:
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
Tôi không hoàn toàn chắc chắn cách này subprocess.check_output
công trình .. trong một nỗ lực ít ỏi tôi đã cố gắng:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
nào mang lại cho tôi một lỗi: ps: illegal argument: |
làm thế nào để sử dụng các đường ống |
biểu tượng bên trong Python, hoặc sử dụng một số khác cách để làm việc phân loại mà không cần phải làm một số lượng đáng kinh ngạc của phân tích cú pháp trên chuỗi lớn trở lại bởi psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
?
Cảm ơn! Kính trọng, -kstruct
Bạn có thể viết tập lệnh shell chứa mã của bạn với đường ống, sau đó gọi tập lệnh từ mô-đun phụ – jedwards