用Python列出网络共享
如果我在一台Windows电脑上用Python明确地尝试列出远程主机上一个共享目录的内容,这个操作是成功的,比如下面这段代码就能正常运行:
os.listdir("\\\\remotehost\\share")
但是,如果我尝试列出远程主机上可用的网络驱动器或目录,Python就失败了,下面的代码示例就是一个例子:
os.listdir("\\\\remotehost")
有没有人知道为什么这样不行呢?任何帮助或解决办法都非常感谢。
5 个回答
1
我相信提问的人现在可能已经忘记这个问题了,不过这里有一个(也许)可以解释的地方:
http://www.python.org/doc/faq/windows/#why-does-os-path-isdir-fail-on-nt-shared-directories
如果还有其他人遇到这个问题,就像我当时一样。
3
如果你还在想怎么在Windows上列出网络共享文件夹,可以使用win32net模块:
import win32net
shares, _, _ = win32net.NetShareEnum('remotehost',0)
这里的数字用来控制返回的信息类型,但如果你只是想要一个共享文件夹的列表,填0就可以了。
这个方法可以在os.listdir('\\remotehost')失败时使用,因为'\\remotehost'并不是真正的文件夹,尽管Windows可以把它显示得像一个文件夹一样。
5
也许pysmb可以帮到你。