通过linux机器打开Windows共享文件夹

时间:2010-03-10 19:38:18

标签: python urllib

我在Ubuntu上使用python 2.5,并且在同一网络中有一台名为machine1的计算机。该文件夹是共享的。

如何在该机器的特定文件夹中获取文件?

我试过了,没有成功:

urllib.urlopen('\\machine1\folder\file.txt')

4 个答案:

答案 0 :(得分:6)

Linux有一个名为smbmount的用户,我相信可以在包smbutils中找到它。

这是一个命令行实用程序,它将Windows共享安装到本地计算机上的目录,可选择使用用户名/密码。

smbmount我相信一个以root身份运行的实用工具,所以它是否适合你,我不知道。也许它可以用作用户。

您可以默认在Linux计算机上安装共享,从而以本地文件的形式访问它上面的文件,或者您可以使用exec或类似的东西在python脚本中执行smbmount / smbumount。

mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smbumount /home/me/WindowsShare

用户名和密码可以写在文件中以保证安全性。查看man page

如果你需要一些完整的python,请查看pysmb。谷歌的条款是python,smb,CIFS。

答案 1 :(得分:2)

urllib无法理解SMB协议。您需要通过pygobject使用gio才能检索文件。

答案 2 :(得分:0)

如果文件夹是共享的,我认为它应该挂载在〜/ .gvfs中。也许您可以在路径中使用open,就像在〜/ .gvfs中看到的那样。

答案 3 :(得分:-1)

您应该查找默认文件浏览器。

然后你可以执行这个过程并传入你想要的文件夹作为参数(smb:// machine1 / folder /)。

例如在Windows上你可以这样做:

execl("explorer.exe", "D:")

尝试查找文件浏览器的路径(大部分时间是Nautilus)。

所以:

execl("/bin/nautilus", "smb://.../")

有关execl

的一些信息