我在 Ubuntu 上使用 python 2.5,并且在同一网络中有一台名为machine1
的机器。该文件夹是共享的。
如何在该机器的特定文件夹中获取文件?
我试过,没有成功:
urllib.urlopen('\\machine1\folder\file.txt')
Linux 有一个名为smbmount
的实用程序,我相信它可以在软件包中找到。
这是一个命令行实用程序,它将 Windows 共享挂载到本地计算机上的目录,可以选择使用用户名 / 密码。
我相信 smbmount 是一个以 root 身份运行的实用程序,所以它是否适合你我不知道。也许它可以用作用户。
您可以在 Linux 机器上默认挂载共享,从而将其上的文件作为本地文件访问,或者您可以使用 exec 或类似的东西从 python 脚本中执行 smbmount / smount。
mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smount /home/me/WindowsShare
为了安全起见,用户名和密码可以写入文件中。请检查man page。
如果您需要完全 python 的东西,请查看pysmb。Google 的术语是 python,smb,CIFS。
urllib
不理解 SMB 协议。您需要通过 pygobject 使用gio
来检索文件。
如果文件夹是共享的,我认为它应该安装在~/.gvfs 中。也许你可以简单地在路径上使用open
,就像你在~/.gvfs 中看到的那样。
您应该查找默认文件浏览器。
然后,您可以执行该过程并将所需的文件夹作为参数传递(smb:/ / machine1 / folder /)。
例如,在 Windows 上,你会做:
execl("explorer.exe", "D:")
尝试查找文件浏览器的路径(大多数时候是 Nautilus)。
因此:
execl("/bin/nautilus", "smb://.../")
关于execl的一些信息
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(38条)