Rob*_*boy 11 python unc network-share python-2.7
如果我使用以下内容获取所有已连接驱动器的列表:
available_drives = ['%s:' % d for d in string.ascii_uppercase if os.path.exists('%s:' % d)]
Run Code Online (Sandbox Code Playgroud)
如何获取已连接驱动器的UNC路径?
os.path
只是返回z:\
而不是\share\that\was\mapped\to\z
Pet*_*ain 11
使用pywin32中的win32wnet转换你的驱动器号.例如:
import win32wnet
import sys
print(win32wnet.WNetGetUniversalName(sys.argv[1], 1))
Run Code Online (Sandbox Code Playgroud)
当我运行它时,这给了我类似的东西:
C:\test>python get_unc.py i:\some\path
\\machine\test_share\some\path
Run Code Online (Sandbox Code Playgroud)
以下是如何在 python \xe2\x89\xa5 3.4 中执行此操作,无需任何依赖项!*
\n\nfrom pathlib import Path\n\ndef unc_drive(file_path):\n return str(Path(file_path).resolve())\n
Run Code Online (Sandbox Code Playgroud)\n\n*注意:我刚刚发现这种方法失败的情况。我公司的一个网络共享具有权限设置,因此此方法会引发PermissionError
. 在这种情况下,win32wnet.WNetGetUniversalName
是一个合适的后备方案。