2009-09-22 15 views
5

gdybym wyraźnie próbują listy zawartość katalogu udostępnionego na zdalnym hostem przy użyciu Pythona na komputerze z systemem Windows, operacja się powiedzie, na przykład, poniższy fragment kodu działa prawidłowo:udziałów sieciowych aukcja z pytona

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

Jednakże, jeśli staram się notować dysków sieciowych/katalogów dostępnych na zdalnym komputerze, pyton nie powiedzie się, czego przykładem jest przedstawiony w poniższym fragmencie kodu:

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

Czy ktoś świadomy, dlaczego to nie działa ?, doceniamy każdą pomoc/obejście.

+1

Czy użytkownik ma uprawnienia do wystawiania udziałów? Lub po prostu mieć uprawnienia do listy katalogów w \\ remotehost \ share? –

+0

Tak, użytkownik ma wystarczające uprawnienia do udziałów, nawet jeśli ustawię hosta zdalnego na moją maszynę lokalną, nadal obserwuję to samo zachowanie. –

+1

Tylko mała wskazówka: W przypadku dużych tras z odwrotnym ukośnikiem, na ogół jest to łatwiejsze aby wprowadzić ciąg jako surowy ciąg, taki jak ten: r '\\ remotehost \ share' vs '\\\\ remotehost \\ share'. To regularnie oszczędza mi bólów głowy. –

Odpowiedz

4

Może być pysmb może pomóc

+0

Próbowałem, początkowa próba wydaje się działać :-) –

0

Niestety. Nie mogę tego wypróbować, ponieważ nie jestem na komputerze. Czy próbowałeś:

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

wypróbowany, bez radości –

1

Dla każdego nadal zastanawiasz się, jak listy udziałów sieciowych na najwyższym poziomie w systemie Windows, można użyć modułu win32net:

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

Liczba całkowita kontroluje rodzaj informacji wrócił, ale jeśli chcesz po prostu listę akcje będą wtedy wynosić 0.

Działa to, gdy os.listdir ('\\ remotehost') zawodzi, ponieważ '\\ remotehost' nie jest prawdziwym folderem, chociaż okna mogą go wyświetlać jak jeden.