список сетевых ресурсов с помощью Python - PullRequest
6 голосов
/ 22 сентября 2009

Если я явно пытаюсь составить список содержимого общего каталога на удаленном хосте, используя python на компьютере с Windows, операция завершается успешно, например, следующий фрагмент кода работает нормально:

os.listdir("\\\\remotehost\\share")

Однако, если я попытаюсь перечислить сетевые диски / каталоги, доступные на удаленном хосте, произойдет сбой python, пример которого показан в следующем фрагменте кода:

os.listdir("\\\\remotehost")

Кто-нибудь знает, почему это не работает? Любая помощь / обходной путь приветствуется.

Ответы [ 5 ]

5 голосов
/ 22 сентября 2009

Может быть pysmb может помочь

2 голосов
/ 12 сентября 2017

Для тех, кто все еще задается вопросом, как перечислить сетевые ресурсы на верхнем уровне в Windows, вы можете использовать модуль win32net:

import win32net
shares, _, _ = win32net.NetShareEnum('remotehost',0)

Целое число определяет тип возвращаемой информации, но если вы просто хотите получить список общих ресурсов, тогда подойдет 0.

Это работает, когда os.listdir ('\\ remotehost') завершается ошибкой, так как \\ remotehost 'не является реальной папкой, хотя окна могут отображать ее как одну.

1 голос
/ 26 апреля 2010

Я уверен, что ОП уже забыл об этом вопросе, но вот (возможно) объяснение:

http://www.python.org/doc/faq/windows/#why-does-os-path-isdir-fail-on-nt-shared-directories

На случай, если кто-нибудь еще столкнется с этой проблемой, как я.

1 голос
/ 22 сентября 2009

Может быть, следующий скрипт поможет вам. Смотри http://gallery.technet.microsoft.com/ScriptCenter/en-us/7338e3bd-1f88-4da9-a585-17877fa37e3b

0 голосов
/ 22 сентября 2009

Извините. Я не могу попробовать это, потому что я не в ПК. Вы пробовали:

os.listdir("\\\\remotehost\\")
...