GNU/Linux >> Linux の 問題 >  >> Linux

Python で合計物理メモリを取得する

クロスプラットフォーム ソリューションの最善の策は、psutil パッケージ (PyPI で入手可能) を使用することです。

import psutil
    
psutil.virtual_memory().total  # total physical memory in Bytes

virtual_memory のドキュメント


使用 os.sysconf 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

注:

  • SC_PAGE_SIZE 多くの場合、4096 です。
  • SC_PAGESIZESC_PAGE_SIZE 等しいです。
  • 詳細については、man sysconf を参照してください .
  • MacOS の場合 、ユーザー レポートによると、これは Python 3.7 では機能しますが、Python 3.8 では機能しません。

/proc/meminfo の使用 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

正規表現はこのような場合にうまく機能し、ディストリビューション間の小さな違いを解決するのに役立ちます。

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])

Linux
  1. dmidecode:Linuxでシステムハードウェア情報を取得する

  2. グループ名でグループ ID を取得 (Python、Unix)

  3. Python を使用してマウス デルタを取得します。 (Linux の場合)

  1. Python FTPは日付で最新のファイルを取得します

  2. Linux で物理ディスクの数を取得するには?

  3. .py ファイルからバイナリを取得するにはどうすればよいですか

  1. Python で Linux コンソール ウィンドウの幅を取得する方法

  2. Linuxでファイルの物理サイズを取得するには?

  3. ファイル リストを含むファイルから合計ファイル サイズを取得する