2009-09-22 51 views
5

如果我明确地试图列出使用Windows机器上的蟒蛇在远程主机上的共享目录中的内容,操作成功,例如,下面的片段正常工作:上市的网络股,蟒蛇

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

但是,如果我试图列出远程主机上可用的网络驱动器/目录,蟒蛇失败,其中的一个例子显示在下面的代码片段:

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

是任何人都知道为什么,这并不工作?,任何帮助/解决方法表示赞赏。

+1

用户是否有权列出的股票?或者只是有权在\\ remotehost \ share中列出目录? – 2009-09-22 11:57:37

+0

是的,用户对共享有足够的权限,即使我将远程主机设置为本地机器,我仍然观察到相同的行为 – 2009-09-22 13:24:14

+1

只是一点点提示: 当处理这样的巨大反斜线时,通常更容易将该字符串输入为原始字符串,如下所示:r'\\ remotehost \ share'vs'\\\\ remotehost \\ share'。这使我经常头痛。 – 2010-04-26 18:47:00

回答

4

可能是pysmb可以帮到

+0

试过了,最初的尝试似乎有效:-) – 2009-09-22 13:24:51

0

对不起。因为我不在电脑里,所以我无法尝试。 您是否尝试过:

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

试过了,没有快乐 – 2009-09-22 13:14:13

1

对于任何人仍然不知道如何在Windows上的顶层列出网络共享,则可以使用win32net模块:

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

的整数控制的返回信息的类型,但如果你只是想清单股票然后0会做。

这工作,其中为“\\远程主机”是不是一个真正的文件夹,尽管Windows可以像一个显示它os.listdir(“\\远程主机”)失败。