在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方法是什么?*nix和Windows平台的奖励积分.
似乎有一些可能的方法从我的搜索中提取:
使用像PSI这样的库(目前似乎没有积极开发并且在多个平台上不受支持)或像pystatgrab这样的东西(自2007年以来再没有活动似乎也不支持Windows).
使用特定于平台的代码,例如os.popen("ps")
在*nix系统中使用或类似代码,以及MEMORYSTATUS
在Windows平台上使用ctypes.windll.kernel32
(参见ActiveState上的此配方).可以将Python类与所有这些代码片段放在一起.
并不是说这些方法很糟糕,但是已经有一个支持良好的多平台方式来做同样的事情了吗?
我正在尝试将Python程序的RAM使用限制为一半,以便在使用所有RAM时不会完全冻结,为此我使用以下代码无效,我的笔记本电脑仍在冻结:
import sys
import resource
def memory_limit():
rsrc = resource.RLIMIT_DATA
soft, hard = resource.getrlimit(rsrc)
soft /= 2
resource.setrlimit(rsrc, (soft, hard))
if __name__ == '__main__':
memory_limit() # Limitates maximun memory usage to half
try:
main()
except MemoryError:
sys.stderr.write('MAXIMUM MEMORY EXCEEDED')
sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)
我正在使用我从main
函数调用的其他函数.
我究竟做错了什么?
提前致谢.
PD:我已经搜索了这个并找到了我已经提供的代码,但它仍然没有工作......