如果我明確地試圖列出使用Windows機器上的蟒蛇在遠程主機上的共享目錄中的內容,操作成功,例如,下面的片段正常工作:上市的網絡股,蟒蛇
os.listdir("\\\\remotehost\\share")
但是,如果我試圖列出遠程主機上可用的網絡驅動器/目錄,蟒蛇失敗,其中的一個例子顯示在下面的代碼片段:
os.listdir("\\\\remotehost")
是任何人都知道爲什麼,這並不工作?,任何幫助/解決方法表示讚賞。
如果我明確地試圖列出使用Windows機器上的蟒蛇在遠程主機上的共享目錄中的內容,操作成功,例如,下面的片段正常工作:上市的網絡股,蟒蛇
os.listdir("\\\\remotehost\\share")
但是,如果我試圖列出遠程主機上可用的網絡驅動器/目錄,蟒蛇失敗,其中的一個例子顯示在下面的代碼片段:
os.listdir("\\\\remotehost")
是任何人都知道爲什麼,這並不工作?,任何幫助/解決方法表示讚賞。
對不起。因爲我不在電腦裏,所以我無法嘗試。 您是否嘗試過:
os.listdir("\\\\remotehost\\")
試過了,沒有快樂 – 2009-09-22 13:14:13
我敢肯定,OP到目前爲止已經忘記了這個問題,但這裏的(也許)的解釋:
http://www.python.org/doc/faq/windows/#why-does-os-path-isdir-fail-on-nt-shared-directories
如果其他人沿着這問題發生,就像我一樣。
對於任何人仍然不知道如何在Windows上的頂層列出網絡共享,則可以使用win32net模塊:
import win32net
shares, _, _ = win32net.NetShareEnum('remotehost',0)
的整數控制的返回信息的類型,但如果你只是想清單股票然後0會做。
這工作,其中爲「\\遠程主機」是不是一個真正的文件夾,儘管Windows可以像一個顯示它os.listdir(「\\遠程主機」)失敗。
用戶是否有權列出的股票?或者只是有權在\\ remotehost \ share中列出目錄? – 2009-09-22 11:57:37
是的,用戶對共享有足夠的權限,即使我將遠程主機設置爲本地機器,我仍然觀察到相同的行爲 – 2009-09-22 13:24:14
只是一點點提示: 當處理這樣的巨大反斜線時,通常更容易將該字符串輸入爲原始字符串,如下所示:r'\\ remotehost \ share'vs'\\\\ remotehost \\ share'。這使我經常頭痛。 – 2010-04-26 18:47:00