2009-09-22 30 views
5

si intento explícitamente para listar el contenido de un directorio compartido en un host remoto a través de pitón en una máquina Windows, la operación tiene éxito, por ejemplo, el siguiente fragmento funciona bien:recursos compartidos de red lista con Python

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

sin embargo, si intento para enumerar las unidades de red/directorios disponibles en el host remoto, pitón falla, un ejemplo del cual se muestra en el siguiente fragmento de código:

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

Hay alguien consciente de por qué esto no lo hace ¿trabajo ?, cualquier ayuda/solución es apreciada.

+1

¿El usuario tiene permiso para enumerar acciones? ¿O simplemente tiene permiso para enumerar directorios en \\ remotehost \ share? –

+0

sí, el usuario tiene permisos suficientes para las acciones, incluso si configuro el host remoto en mi máquina local, igual observo el mismo comportamiento –

+1

Solo un pequeño consejo: Cuando se trata de grandes recorridos de barra invertida como ese, generalmente es más fácil para ingresar la cadena como una cadena sin formato, como esta: r '\\ remotehost \ share' vs '\\\\ remotehost \\ share'. Eso me ahorra dolores de cabeza regularmente. –

Respuesta

4

Puede ser pysmb puede ayudar a

+0

lo probé, el intento inicial parece funcionar :-) –

0

Lo sentimos. No puedo probar esto ya que no estoy en una PC. ¿Has probado:

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

lo probé, no hay alegría –

1

Para alguien todavía se pregunta cómo enumerar recursos compartidos de red en el nivel superior de las ventanas, se puede utilizar el módulo de win32net:

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

El entero controla el tipo de información que se devuelve, pero si lo que desea es una lista de las acciones entonces 0 lo harán.

Esto funciona donde os.listdir ('\\ remotehost') falla ya que '\\ remotehost' no es una carpeta real aunque Windows puede mostrarlo como uno.

Cuestiones relacionadas