Как найти место на диске в Python 2.7 (НЕ с os.statvfs) - PullRequest
0 голосов
/ 17 декабря 2018

Итак, os.statvfs() является устаревшим , поскольку 2.6, shutil.disk_usage() еще не существует (доступно в 3).Что осталось?
РЕДАКТИРОВАТЬ: Я не хочу добавлять новую библиотеку на этом этапе, поэтому psutil также отсутствует.

Я собираюсь запустить df в подпроцессе и проанализировать вывод, есть ли лучший способ?

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Я протестировал его, используя Anaconda2-5.3.1-Windows-x86_64, psutil был установлен:

import psutil

obj_Disk = psutil.disk_usage('/')

print (obj_Disk.total / (1024.0 ** 3),"GB")
print (obj_Disk.used / (1024.0 ** 3),"GB")
print (obj_Disk.free / (1024.0 ** 3),"GB")
print (obj_Disk.percent)

Ссылка:

https://pypi.python.org/pypi/psutil

Получить размер жесткого диска в Python

0 голосов
/ 17 декабря 2018

df в первую очередь предназначен для потребления человеком и только иногда для сценариев в сценарии оболочки.Иногда вывод команд пользовательского пространства может быть трудным для анализа, поскольку они в первую очередь предназначены для потребления человеком, хотя вы можете передать некоторые аргументы некоторым командам пользовательского пространства для получения машинно-разборного вывода.При использовании таких языков, как Python, os поддерживает большинство часто используемых системных функций, но вы также можете использовать высокоуровневые оболочки, такие как psutil library.Я очень рекомендую psutil, если вы делаете это часто.

Если вы не хотите использовать сторонние библиотеки, я бы рекомендовал использовать специальную файловую систему /sys/class/block (или /sys/block, есливы также хотите поддерживать устаревшие системы), или вы можете проанализировать /proc/partitions.Специальные файловые системы /sys, /dev и /proc - это стабильные интерфейсы ядра, разработанные для использования в сценариях. Вы взаимодействуете с этими специальными файлами, читая / записывая в эти специальные файлы, большинство интерфейсов довольно легко доступны.синтаксический анализ, поскольку они предназначены для использования в сценариях оболочки.

0 голосов
/ 17 декабря 2018
  1. os.system('df -k /')
  2. psutil.disk_usage('/')
...