我正在建立一个接口,以使用python(和netuse)连接网络驱动器。一个tkinter按钮运行连接命令,一个文本框显示连接状态。但是,一旦驱动器在Windows资源管理器中可见,即使我们无法打开它(由于缺少网络),此文本框也会显示“已连接”。我必须手动单击“断开连接”,以使其在我的python程序中显示为“断开连接”。 (实际上,该磁盘不再位于win32net.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é")
我在其他地方找到了答案:我们可以使用以下代码来检查每个磁盘是否都可以访问。
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)