Как я могу прочитать системную информацию в Python на OS X?

Следуя этому OS-агностическому вопросу , в частности, этот ответ , подобный данным, доступным от подобных / proc / meminfo в Linux, как я могу читать системную информацию из OS X с помощью Python (включая, но не ограничиваясь этим, использование памяти).

  • Вывод BeautifulSoup в файл .txt
  • Как скопировать каталог и его содержимое в существующее место с помощью Python?
  • Проверьте, является ли файл символической ссылкой в ​​python
  • Каково возвращаемое значение os.system () в Python?
  • При использовании os.execlp, почему `python` нуждается в` python` как argv
  • does close () подразумевает flush () в Python?
  • Как установить lxml на OS X Leopard без использования MacPorts или Fink?
  • «Проверка сертификата SSL не удалась» с помощью pip для установки пакетов
  • Python сократился после обновления OS X 10.8
  • PyCrypto и библиотека GMP не нашли ошибку
  • Получить заголовок текущего активного окна / документа в Mac OS X
  • Установка Homebrew, установка python
  • 5 Solutions collect form web for “Как я могу прочитать системную информацию в Python на OS X?”

    Вы можете получить большую информацию о системе из утилит командной строки sysctl и vm_stat (а также ps , как в этом вопросе ).

    Если вы не найдете лучшего способа, вы всегда можете вызвать их с помощью subprocess .

    Единственный материал, который действительно хорошо доступен, доступен из модуля платформы, но он чрезвычайно ограничен (cpu, os версия, архитектура и т. Д.). Для использования процессора и времени безотказной работы, я думаю, вам придется обернуть «утилит» утилит командной строки и «vm_stat».

    Я построил вам один для vm_stat, другой – для вас 😉

     import os, sys def memoryUsage(): result = dict() for l in [l.split(':') for l in os.popen('vm_stat').readlines()[1:8]]: result[l[0].strip(' "').replace(' ', '_').lower()] = int(l[1].strip('.\n ')) return result print memoryUsage() 

    Я сделал еще несколько поисковых запросов (ищет «OS X / proc») – похоже, что команда sysctl может быть тем, что вы хотите, хотя я не уверен, предоставит ли она вам всю необходимую информацию. Вот справочная страница: http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man8/sysctl.8.html

    Кроме того, википедия .

    Вот на MacFUSE / proc fs:

    http://www.osxbook.com/book/bonus/chapter11/procfs

    Если у вас есть контроль над ящиками, на которых запущена ваша программа python, это может быть разумным решением. Во всяком случае приятно иметь a / proc смотреть!

    Я искал эту же вещь, и я заметил, что ответа на этот вопрос не было принято. в промежуток времени, когда вопрос был первоначально задан, был выпущен модуль python под названием psutil:

    https://github.com/giampaolo/psutil

    для использования памяти вы можете использовать следующее:

     >>> psutil.virtual_memory() svmem(total=8374149120L, available=2081050624L, percent=75.1, used=8074080256L, free=300068864L, active=3294920704, inactive=1361616896, buffers=529895424L, cached=1251086336) >>> psutil.swap_memory() sswap(total=2097147904L, used=296128512L, free=1801019392L, percent=14.1, sin=304193536, sout=677842944) >>> 

    существуют функции для использования cpu, управления процессами, диска и сети. единственное упущение из модуля – это функция для получения среднего значения нагрузки, но в stdlib python есть os.getloadavg (), если вы находитесь в UNIX-подобной системе.

    psutil утверждает, что поддерживает Linux, Windows, OSX, FreeBSD и Sun Solaris, но я только пробовал OSX mavericks и fedora 20.

    Python - лучший язык программирования в мире.