我在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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top