我如何知道計算機的總體內存使用情況是什麼樣的Python,在Windows XP上運行?獲取計算機的內存使用在Windows中使用Python
回答
你想使用wmi模塊。例如:
import wmi
comp = wmi.WMI()
for i in comp.Win32_ComputerSystem():
print i.TotalPhysicalMemory, "bytes of physical memory"
for os in comp.Win32_OperatingSystem():
print os.FreePhysicalMemory, "bytes of available memory"
您可以在WMI中查詢性能計數器。我已經做了類似的事情,但使用磁盤空間。
一個非常有用的鏈接是Python WMI Tutorial by Tim Golden。
你也可以調用GlobalMemoryStatusEx()(或任何其他KERNEL32或USER32出口)直接從蟒蛇:
import ctypes
class MEMORYSTATUSEX(ctypes.Structure):
_fields_ = [
("dwLength", ctypes.c_ulong),
("dwMemoryLoad", ctypes.c_ulong),
("ullTotalPhys", ctypes.c_ulonglong),
("ullAvailPhys", ctypes.c_ulonglong),
("ullTotalPageFile", ctypes.c_ulonglong),
("ullAvailPageFile", ctypes.c_ulonglong),
("ullTotalVirtual", ctypes.c_ulonglong),
("ullAvailVirtual", ctypes.c_ulonglong),
("sullAvailExtendedVirtual", ctypes.c_ulonglong),
]
def __init__(self):
# have to initialize this to the size of MEMORYSTATUSEX
self.dwLength = ctypes.sizeof(self)
super(MEMORYSTATUSEX, self).__init__()
stat = MEMORYSTATUSEX()
ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))
print("MemoryLoad: %d%%" % (stat.dwMemoryLoad))
不一定如WMI在這種情況下是有用的,但絕對是一個不錯的把戲在你的後袋。
這一個是真棒,不知道,你可以在Windows中做到這一點。 – Anders 2010-06-11 07:54:36
這是__init__中的返回?爲什麼要這麼做? – Arafangion 2011-12-15 03:00:53
超級調用可以省略,因爲dwLength之前已經初始化,其他_fields_不需要初始化。 – phobie 2012-09-25 16:33:33
- 1. 如何使用其他機器內存,使用B計算機使用Python計算機內存?
- 2. 在Swift中獲取計算機的可用/空閒內存
- 3. 如何使用Python知道計算機(Windows 7)的內容?
- 4. 在windows和linux上使用Python獲取唯一的計算機ID
- 5. 使用Python獲取計算機的外部IP地址
- 6. Gecfofx 22.0在C#中使用大量的計算機內存
- 7. 如何使用python獲取計算機序列號?
- 8. 使用python和.bat文件獲取計算機序列號
- 9. 如何在Python中使用Wmi從活動目錄獲取計算機列表
- 10. 如何在.net中獲取/計算進程使用的總內存?
- 11. 使用WMI VBScript獲取工作組中的計算機列表
- 12. 如何使用PHP獲取計算機名稱,計算機的本地IP和計算機的服務器IP
- 13. 使用Python控制計算機硬件
- 14. 如何使用Python扼殺計算機
- 15. 在最後x分鐘內獲取計算機的平均CPU使用率
- 16. 計算使用python
- 17. 獲取計算機域(通用Windows應用程序)
- 18. 獲取windows服務使用內存使用wmi
- 19. 在Z3解算器中使用C API獲取內存消耗
- 20. 使用powershell v3.0查詢域計算機上的物理內存
- 21. 在遠程計算機上使用robot.createScreenCapture獲取黑色圖像
- 22. 使用Python計算內容長度
- 23. 獲取計算機的用戶
- 24. 使用16位內存地址的計算機的內存大小
- 25. 獲取ShockWaveFlash內存使用
- 26. 獲取內存使用PHP
- 27. 在計算機網絡中使用Wireshark
- 28. 如何使用API獲取GAE日誌並存儲在本地計算機上?
- 29. 計算使用python的
- 30. 在使用共享內存的不同計算機中的IPC通信
對不起,這得到總物理內存(顯然) - 我會留下開放,因爲它是朝着正確方向邁出的一步,直到我找到WMI命令來獲得使用/空閒內存。 – 2010-01-07 01:29:37
+1。將它改爲獲取正確的數據將是微不足道的。 – Skurmedel 2010-01-07 01:30:36
@NigelHeffernan現有的答案已經使用Win32_OperatingSystem訪問FreePhysicalMemory。 – 2018-02-05 20:25:39