Изучение физического диска каталога в Linux с помощью Python - PullRequest
1 голос
/ 02 марта 2011

Во-первых, извините за мой плохой английский.

Я пишу скрипт на python, который сравнивает файлы в двух разных каталогах. Но для производительности я хочу знать, что: «Каталоги находятся на одном физическом диске или нет?», Поэтому я могу читать их одновременно для увеличения производительности.

Моя текущая идея - получить выходные данные команд "mount", получить путь к каталогам / dev / sd * и использовать их для идентификации дисков. Но иногда вы можете смонтировать уже смонтированный каталог где-то еще (или что-то в этом роде, я не так уверен), поэтому все становится сложнее.

Есть ли лучший способ сделать это, например, библиотека?

(Если есть кроссплатформенный способ, я буду более признателен, но, похоже, трудно найти кроссплатформенную библиотеку, подобную этой.)

Ответы [ 2 ]

5 голосов
/ 02 марта 2011

Вы ищете функцию stat из linux, которая также предоставляется вам python (см. http://docs.python.org/library/os.html#os.stat).

. Вам нужно сравнить st_dev из полученной структуры, и оба файла будут наодна и та же файловая система, если они совпадают.

Использование этой функции максимально переносимо (лучше, чем mount или df).

Бонус: вам не нужно выполнять дорогие вызовы exec и делать ошибкупростой анализ текста.

1 голос
/ 02 марта 2011

Более простой альтернативой использованию mount может быть вызов df <directory>.

Это распечатывает файловую систему.Кроме того, на моем компьютере с Ubuntu передача -P в df немного облегчает анализ выходных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...