Sử dụng ctypes
và mã thể hiện trong câu trả lời đầu tiên trong bài viết này: Get full computer name from a network drive letter in python, nó có thể để có được các đường dẫn ổ đĩa cho mỗi ổ đĩa mạng, hoặc một vài lựa chọn.
Chức năng get_connection
nhất định sẽ ném ra một lỗi nếu ổ đĩa không phải là một ổ đĩa mạng, ổ đĩa địa phương hoặc tháo rời, điều này có thể được giải thích với
# your drive list
available_drives = ['%s:' % d for d in string.ascii_uppercase if os.path.exists('%s:' % d)]
for drive in available_drives:
try:
# function from linked post
print(get_connection(drive))
except WindowsError: # thrown from local drives
print('{} is a local drive'.format(drive))
Lưu ý: Tôi không cố gắng thực hiện này. https://docs.python.org/2/library/os.path.html Dựa trên điều này, "Lưu ý Trên Windows, nhiều chức năng này không hỗ trợ đúng tên đường dẫn UNC. splitunc() và ismount() xử lý chúng một cách chính xác ". os.path.splitunc (đường dẫn) Chia đường dẫn pathname thành một cặp (unc, rest) để unc là điểm gắn UNC (như r '\\ host \ mount'), nếu có, và phần còn lại của đường dẫn (chẳng hạn như r '\ path \ file.ext'). Đối với các đường dẫn có chứa ký tự ổ đĩa, chữ sẽ luôn là chuỗi rỗng. – prashanth
Thử thư viện sau trong bài đăng trên blog. http://developer.covenanteyes.com/unc-paths-with-python/ Liên kết đến thư viện http://covenanteyes.github.io/py_win_unc/ – prashanth
được một thời gian kể từ khi tôi làm điều này, nhưng iirc cách tôi tìm thấy là gọi 'net show' (sp?) và phân tích cú pháp đầu ra ... không có bất kỳ cửa sổ nào gần đó để thử ngay bây giờ ... –