2013-05-01 26 views
14

Tôi muốn có danh sách tất cả các tên quy trình, CPU, Mem Usage và Peak Mem Usage. Tôi đã hy vọng tôi có thể sử dụng ctypes. nhưng tôi rất vui khi nghe bất kỳ lựa chọn nào khác. Cảm ơn vì đã dành thời gian cho tôi.Python - lấy tên quy trình, sử dụng CPU, Mem và sử dụng Mem cao nhất trong windows

+1

Bạn không thể làm tốt hơn [psutil] (http://code.google.com/p/psutil/) – JBernardo

+0

Trong cửa sổ, đặt cược tốt nhất của bạn có thể là bộ đếm hiệu suất. – ren

Trả lời

30

Bạn có thể sử dụng psutil.

Ví dụ, để có được danh sách các tên quá trình:

process_names = [proc.name() for proc in psutil.process_iter()] 

Đối với thông tin về việc sử dụng CPU psutil.cpu_percent hoặc psutil.cpu_times. Để biết thông tin về mức sử dụng bộ nhớ psutil.virtual_memory.

Lưu ý rằng psutil hoạt động với Linux, OS X, Windows, Solaris và FreeBSD và với trăn 2.4 đến 3.3.

+0

psutil có thể nhận được số liệu thống kê mạng ** cho mỗi quá trình ** không? Tôi googled và đọc tài liệu trong khoảng một giờ, đã không tìm thấy bất cứ điều gì – chester89

+0

@ chester89 Điều này là không liên quan đến câu hỏi này. Hãy thử tìm SO cho các câu hỏi psutil về cách sử dụng mạng, và sau đó, nếu bạn không tìm thấy câu trả lời thỏa mãn, hãy tiếp tục và hỏi một câu hỏi mới liên quan đến nó. Trong mọi trường hợp, bạn nên kiểm tra ['Process.connections'] (https://pythonhosted.org/psutil/#psutil.Process.connections). – Bakuriu

+0

Cách biết băng thông đang sử dụng qua mô-đun này –

3

Tôi thích sử dụng wmic trên Windows. Bạn có thể chạy nó từ dòng lệnh, vì vậy bạn có thể chạy nó từ Python.

from subprocess import Popen,PIPE 
proc = Popen('wmic cpu',stdout=PIPE, stderr=PIPE) 
print str(proc.communicate()) 

Với wmic bạn có thể dễ dàng nhận được quy trình, CPU và thông tin bộ nhớ. Chỉ cần sử dụng wmic cpu, wmic processwmic memphysical. Bạn cũng có thể lọc ra các thuộc tính nhất định bằng cách sử dụng wmic <alias> get <attribute>. Và bạn có thể nhận danh sách tất cả các lệnh với wmic /?. Hy vọng rằng sẽ giúp!

Bạn có thể kiểm tra các tài liệu chính thức cho WMIC đây: http://technet.microsoft.com/en-us/library/bb742610.aspx

+0

Cảm ơn, đó sẽ là tuyệt vời nhưng nó sẽ cần phải được chạy như quản trị viên, là có một cách để chạy nó như là admin trước khi sử dụng nó trong dòng lệnh? – Daniel

1

Mã Python 3.3 này hoạt động cho Windows 7 với UAC xuống hết cỡ.

import psutil 
import time 

def processcheck(seekitem): 
    plist = psutil.get_process_list() 
    str1=" ".join(str(x) for x in plist) 
    if seekitem in str1: 
     print ("Requested process is running") 

processcheck("System") 
Các vấn đề liên quan