我在 Ubuntu 上使用 python 2.5,并且在同一网络中有一台名为machine1
. 该文件夹已共享。
如何在该机器的特定文件夹中获取文件?
我试过了,没有成功:
urllib.urlopen('\\machine1\folder\file.txt')
Linux 有一个名为 的实用smbmount
程序,我相信它可以在 smbutils 包中找到。
这是一个命令行实用程序,可将 Windows 共享挂载到本地计算机上的目录,可选择使用用户名/密码。
我相信 smbmount 是一个以 root 身份运行的实用程序,所以我不知道它是否适合你。也许它可以用作用户。
您可以在 Linux 机器上默认安装共享,从而将其上的文件作为本地文件访问,或者您可以在 python 脚本中使用 exec 或类似的东西执行 smbmount / smbumount。
mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smbumount /home/me/WindowsShare
用户名和密码可以写入文件以确保安全。检查手册页。
如果您需要完全 python 的东西,请查看pysmb。谷歌的术语是 python、smb、CIFS。
urllib
不了解 SMB 协议。您需要gio
通过 pygobject 来检索文件。
如果文件夹是共享的,我认为应该挂载到~/.gvfs。也许您可以简单地使用open
在 ~/.gvfs 中看到的路径。
您应该寻找默认的文件浏览器。
然后您可以执行该过程并传入您想要的文件夹作为参数 (smb://machine1/folder/)。
例如在 Windows 上,你会这样做:
execl("explorer.exe", "D:")
尝试查找文件浏览器的路径(大部分时间是 Nautilus)。
所以:
execl("/bin/nautilus", "smb://.../")
关于execl的一些信息