使用Python,如何以通用方式返回CPU使用率,内存使用量(免费,使用等),进程数等信息,以便在Linux,Windows,BSD等上运行相同的代码?
或者,如何在所有上述系统中返回此信息,并且只有在该操作系统确实是操作环境时才运行该操作系统特定的代码?
关于跨平台:您最好的选择可能是编写特定于平台的代码,然后有条件地导入它.例如
import sys if sys.platform == 'win32': import win32_sysinfo as sysinfo elif sys.platform == 'darwin': import mac_sysinfo as sysinfo elif 'linux' in sys.platform: import linux_sysinfo as sysinfo #etc print 'Memory available:', sysinfo.memory_available()
对于特定资源,正如Anthony所指出的,您可以/proc
在linux下访问.对于Windows,您可以在Microsoft Script Repository中查看.我不知道在哪里可以获得关于Mac的那种信息,但我可以想到一个很棒的网站,你可以问:-)
在Linux环境中,您可以从/ proc文件系统中读取.
~$ cat /proc/meminfo MemTotal: 2076816 kB MemFree: 130284 kB Buffers: 192664 kB Cached: 1482760 kB SwapCached: 0 kB Active: 206584 kB Inactive: 1528608 kB HighTotal: 1179484 kB HighFree: 120768 kB LowTotal: 897332 kB LowFree: 9516 kB SwapTotal: 2650684 kB SwapFree: 2650632 kB Dirty: 64 kB Writeback: 12 kB AnonPages: 59668 kB Mapped: 22008 kB Slab: 200744 kB PageTables: 1220 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 3689092 kB Committed_AS: 263892 kB VmallocTotal: 114680 kB VmallocUsed: 3604 kB VmallocChunk: 110752 kB