Проверьте подключение к сетевому диску - PullRequest
0 голосов
/ 20 февраля 2020

Я делаю интерфейс для подключения сетевых дисков с python (и netuse). Кнопка tkinter запускает команду соединения, а текстовое поле показывает состояние соединения. Тем не менее, это текстовое поле показывает «подключен», как только диск виден в windows Explorer, даже если мы не можем открыть его (из-за отсутствия сети). Я должен нажать «отключить» вручную, чтобы он выглядел как «отключенный» в моей программе python. (действительно, этот диск больше не находится в запросе win3 2net .NetUseEnum)

Как проверить соединение с диском, прежде чем показывать его состояние?

Рафаэль

import os
import win32net
(_drives, total, resume) = win32net.NetUseEnum (None, 0, 0)
disques = []
for drive in _drives:
    if drive['local']== "V:":
        disques.append("v")
    if drive['local']=="U:":
        disques.append("u")

def monterU():
    if os.system(r"net use u: \\srsedc03\users") == 0:
        os.system(r"net use u: \\srsedc03\users")
        etatU.set("connecté")

1 Ответ

0 голосов
/ 20 февраля 2020

Я нашел ответ где-то еще: мы можем использовать следующий код, чтобы проверить, доступен ли каждый диск.

import os

for drive in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
    drive += ':'

try:
    os.scandir(drive)
    ok = "accessible"
except Exception:
    ok = "non accessible"

print(drive, os.access(drive, os.R_OK), ok)
...