Ihre beste Wahl für eine plattformübergreifende Lösung ist die Verwendung des psutil-Pakets (verfügbar auf PyPI).
import psutil
psutil.virtual_memory().total # total physical memory in Bytes
Dokumentation für virtual_memory
ist hier.
Verwenden os.sysconf
unter Linux:
import os
mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES') # e.g. 4015976448
mem_gib = mem_bytes/(1024.**3) # e.g. 3.74
Hinweis:
SC_PAGE_SIZE
ist oft 4096.SC_PAGESIZE
undSC_PAGE_SIZE
sind gleich.- Weitere Informationen finden Sie unter
man sysconf
. - Für MacOS , laut Benutzerberichten funktioniert dies mit Python 3.7, aber nicht mit Python 3.8.
Mit /proc/meminfo
unter Linux:
meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines())
mem_kib = meminfo['MemTotal'] # e.g. 3921852
Reguläre Ausdrücke eignen sich gut für solche Dinge und können bei geringfügigen Unterschieden zwischen den Distributionen hilfreich sein.
import re
with open('/proc/meminfo') as f:
meminfo = f.read()
matched = re.search(r'^MemTotal:\s+(\d+)', meminfo)
if matched:
mem_total_kB = int(matched.groups()[0])