6
votes

Liste des actions réseau avec python

Si je tente explicitement de répertorier le contenu d'un répertoire partagé sur un hôte distant à l'aide de Python sur une machine Windows sur une machine Windows, l'opération réussit, par exemple, l'extrait suivant fonctionne bien:

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


3 commentaires

L'utilisateur a-t-il la permission de lister des actions? Ou simplement avoir la permission de répertorier les répertoires dans \\ RemoteHost \ Partager?


Oui, l'utilisateur dispose de suffisamment d'autorisations aux actions, même si je définissais l'hôte distant sur ma machine locale, j'observe toujours le même comportement


Juste un petit conseil: lorsque vous traitez avec d'énormes sentiers de barre oblique inverse, il est généralement plus facile de saisir la chaîne en tant que chaîne brute, comme celle-ci: R '\\ remotehost \ Partager' vs '\\\\ est remotehost \\ Partager'. Cela me sauve régulièrement des maux de tête.


5 Réponses :


5
votes

peut être PYSMB peut aider


0 commentaires

0
votes

désolé. Je ne suis pas capable d'essayer cela comme je ne suis pas sur un PC. Avez-vous essayé:

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


0 commentaires

1
votes

1
votes

Je suis sûr que l'OP a oublié cette question maintenant, mais voici (peut-être) une explication:

http://www.python.org/doc/faq/windows/#why-DoS-OS-Path-isdir-fail-on-nt-shared-Directories

Au cas où quelqu'un d'autre arrive sur ce problème, comme je l'ai fait.


0 commentaires

3
votes

Pour quiconque se demandant toujours comment répertorier les partages réseau au niveau supérieur sous Windows, vous pouvez utiliser le module Win32net: xxx

L'entier contrôle le type d'informations renvoyées mais si vous voulez juste une liste des actions alors 0 fera.

Ceci fonctionne où os.listdir ('\\ remotehost') échoue comme "\\ remotehost" n'est pas un vrai dossier, bien que Windows puisse l'afficher comme une .


0 commentaires