用Python列出网络共享

6 投票
5 回答
15887 浏览
提问于 2025-04-15 14:30

如果我在一台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可以帮到你。

撰写回答