我如何知道计算机的总体内存使用情况是什么样的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. 使用python和.bat文件获取计算机序列号
- 7. 使用WMI VBScript获取工作组中的计算机列表
- 8. 如何使用PHP获取计算机名称,计算机的本地IP和计算机的服务器IP
- 9. 使用Python控制计算机硬件
- 10. 如何使用Python扼杀计算机
- 11. 获取windows服务使用内存使用wmi
- 12. 使用Python计算内容长度
- 13. 获取计算机的用户
- 14. 如何使用API获取GAE日志并存储在本地计算机上?
- 15. 计算使用python的
- 16. 如何使用Python从网络上的计算机获取本地管理员?
- 17. 使用wlst获取计算机的受管服务器
- 18. 使用Get-ADComputer cmdlet获取OU的计算机列表
- 19. 当使用计算机内存时,cudaMalloc失败
- 20. 在Python中获取计算机的UTC偏移量
- 21. 从网络中的计算机获取计算机描述
- 22. 使用python在excel中计算值
- 23. 在Windows服务中获取计算机名称?
- 24. 扫描计算机内存
- 25. 在使用java的Android项目中获取计算机的IP地址
- 26. 获取本地计算机的IP(在cron的脚本中使用)
- 27. 在工作组中获取计算机
- 28. 在Java中计算B树的内存使用率
- 29. 使用python的Windows库存
- 30. 在C++/Windows中,我如何获取正在使用的计算机的网络名称?
对不起,这得到总物理内存(显然) - 我会留下开放,因为它是朝着正确方向迈出的一步,直到我找到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