2009-09-22 78 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(「\\遠程主機」)失敗。