Запрос USB-устройств, подключенных к Windows, используя Python - PullRequest
1 голос
/ 20 июня 2019

Есть много ответов для C #, C ++, Python, Ubuntu и т. Д., Но это предпочтительнее для Windows и Python (или просто вызвать подпроцесс через Python)

У меня есть этот код, который работал на Ubuntu, но теперь я хочу переключиться на Windows:

rpistr = "ls /media/pi > usbs.txt"
p=subprocess.Popen(rpistr,shell=True, preexec_fn=os.setsid)
array = []
with open("usbs.txt", "r") as f:
    for line in f:
        array.append(line.strip())

Я хотел бы проверить подключенные порты и перечислить каталог USB.

Например, допустим, у меня естьC:\ и D:\, но теперь я подключаю новый USB, который будет F:\ в качестве примера - я хочу выяснить, что путь F:\ теперь доступен для меня, и могу копировать файлover.

Типичный поток:

  • Получить все местоположения
  • Получить, что новое местоположение F:\ доступно
  • Скопировать файл поверхиспользуя shutil.copy2

Так как же определить, какой порт (?) только что был подключен F, G, H и т. д.?Я планирую запустить это в бесконечном цикле, поэтому мне нужно определить, когда и где подключен новый USB.

1 Ответ

0 голосов
/ 20 июня 2019

Не осознавал, что их называют Дисками, понял это и нашел правильный ответ.

Вы можете просто использовать:

import win32com.client

drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
print(drives)

, и он выведет ответ как таковой:

['C:\\', 'D:\\', 'E:\\', 'F:\\']

Просто вызов drives[x], x в качестве индекса, вернет пример диска как X:\, который отлично работает с shutil.

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