如果我明确尝试在 Windows 机器上使用 python 列出远程主机上的共享目录的内容,则操作成功,例如,以下代码段可以正常工作:
os.listdir("\\\\remotehost\\share")
但是,如果我尝试列出远程主机上可用的网络驱动器/目录,python 会失败,下面的代码片段中显示了一个示例:
os.listdir("\\\\remotehost")
有人知道为什么这不起作用吗?感谢任何帮助/解决方法。
如果我明确尝试在 Windows 机器上使用 python 列出远程主机上的共享目录的内容,则操作成功,例如,以下代码段可以正常工作:
os.listdir("\\\\remotehost\\share")
但是,如果我尝试列出远程主机上可用的网络驱动器/目录,python 会失败,下面的代码片段中显示了一个示例:
os.listdir("\\\\remotehost")
有人知道为什么这不起作用吗?感谢任何帮助/解决方法。
可能是pysmb可以提供帮助
对于仍然想知道如何在 Windows 的顶层列出网络共享的任何人,您可以使用 win32net 模块:
import win32net
shares, _, _ = win32net.NetShareEnum('remotehost',0)
整数控制返回的信息类型,但如果你只想要一个共享列表,那么 0 就可以了。
这适用于 os.listdir('\\remotehost') 失败,因为 '\\remotehost' 不是一个真正的文件夹,尽管 Windows 可以像一个文件夹一样显示它。
我确定OP现在已经忘记了这个问题,但这里(也许)是一个解释:
http://www.python.org/doc/faq/windows/#why-does-os-path-isdir-fail-on-nt-shared-directories
以防其他人像我一样遇到这个问题。
也许以下脚本会对您有所帮助。请参阅http://gallery.technet.microsoft.com/ScriptCenter/en-us/7338e3bd-1f88-4da9-a585-17877fa37e3b
对不起。我无法尝试这个,因为我不在 PC 中。你有没有尝试过:
os.listdir("\\\\remotehost\\")