Как я могу получить смонтированное имя и (букву диска) в Windows, используя python - PullRequest
1 голос
/ 20 апреля 2010

Я использую инструмент Daemon для монтирования ISO-образа на компьютере с Windows XP. Я монтирую с помощью команды Daemon (daemon.exe -mount 0, iso_path).

Приведенная выше команда подключит ISO-образ к номеру устройства. В моем случае у меня есть 4 раздела (C, D, E, F) и G для DVD / CD-RW. Теперь, что происходит, ISO подключается к букве диска «H:» с именем (как определено при создании ISO), например, «testmount».

Мои запросы: -

1) Как получить имя монтирования смонтированного ISO-образа (т. Е. «Testmount»). Просто другой случай; если на машине уже есть несколько точек монтирования, и я создал новую с помощью инструмента Daemon. Тогда если я смогу получить последний, используя скрипт, это будет здорово.

2) Как получить букву диска, где он был смонтирован.

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

Спасибо ...

Ответы [ 3 ]

1 голос
/ 21 апреля 2010

Вы можете перечислить диски, используя консоль wmi:

C:\>wmic logicaldisk get Name, DriveType

Числовые значения типов приводов позволяют различать разные типы.

Также доступен WMI: модуль Python , хотя его необходимо устанавливать отдельно.

1 голос
/ 20 апреля 2010

У exe-файла daemon tools есть некоторые параметры командной строки:

-get_count и -get_letter

Но для меня они не работают в последней версии (DLite).

Вместо этого вы можете использовать команды:

mountvol - перечисляет все смонтированные диски

dir - вы можете проанализировать вывод, чтобы получить метку тома

Что вам нужно сделать, это запустить mountvol перед демоном и после, чтобы вы могли определить новую букву диска. После этого используйте «dir», чтобы получить метку тома.

Я полагаю, что вы можете запускать эти команды с помощью вызова os.system () в python

0 голосов
/ 03 июня 2010

добавление newtover, получение списка дисков из вывода консоли wmi

[i.strip() for i in os.popen('wmic logicaldisk get Name').readlines() if i.strip()<>''][1:]

...