题
我在Ubuntu上使用Python 2.5,并且在同一网络中有一台机器称为 machine1
. 。该文件夹已共享。
如何在该计算机的特定文件夹中获取文件?
我尝试过,没有成功:
urllib.urlopen('\\machine1\folder\file.txt')
解决方案
Linux有一个名为 smbmount
, ,我相信可以在Smbutils包装中找到。
这是一个命令行实用程序,可以将窗口共享到本地计算机上的目录,可选地使用用户名/密码。
我相信Smbmount是一个词根,所以我不知道它是否适合您。也许可以用作用户。
您默认可以在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. 。 Google的条款是Python,SMB,CIFS。
其他提示
urllib
不了解SMB协议。您将需要使用 gio
通过pygobject为了检索文件。
如果共享文件夹,我认为应该将其安装在〜/.gvfs中。也许您可以简单地使用 open
如您在〜/.gvfs中看到的路径上。
您应该查找默认文件浏览器。
然后,您可以执行该过程并将所需的文件夹作为参数传递(smb:// machine1/folder/)。
例如,在Windows上您会做:
execl("explorer.exe", "D:")
尝试查找文件浏览器的路径(大部分时间是Nautilus)。
所以:
execl("/bin/nautilus", "smb://.../")
一些信息 Execl
不隶属于 StackOverflow