Python 通过linux计算机打开Windows共享文件夹
我在Ubuntu上使用Python2.5,在同一个网络中有一台机器叫做Python 通过linux计算机打开Windows共享文件夹,python,urllib,Python,Urllib,我在Ubuntu上使用Python2.5,在同一个网络中有一台机器叫做machine1。文件夹已共享 如何在该机器的特定文件夹中获取文件 我尝试过,但没有成功: urllib.urlopen('\\machine1\folder\file.txt') 您应该查找默认的文件浏览器 然后,您可以执行该过程并将其作为参数传入所需的文件夹(smb://machine1/folder/) 例如,在windows上,您可以执行以下操作: execl("explorer.exe", "D:") 尝试查找文
machine1
。文件夹已共享
如何在该机器的特定文件夹中获取文件
我尝试过,但没有成功:
urllib.urlopen('\\machine1\folder\file.txt')
您应该查找默认的文件浏览器 然后,您可以执行该过程并将其作为参数传入所需的文件夹(smb://machine1/folder/) 例如,在windows上,您可以执行以下操作:
execl("explorer.exe", "D:")
尝试查找文件浏览器的路径(大多数情况下是Nautilus)
因此:
有关
urllib
的某些信息不理解SMB协议。您需要使用via pygobject来检索文件。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
为了安全起见,可以将用户名和密码写入文件中。检查一下
如果您需要完全python的东西,请查看。谷歌的术语是python、smb、CIFS。如果文件夹是共享的,我认为应该将其装入~/.gvfs中。也许您可以简单地在~/.gvfs中看到的路径上使用
open
。Ok,但是。。。我想我没有解释清楚。我的python脚本正在Ubuntu上运行,我只想得到一个文件。此窗口计算机中没有服务。请使用您的部件的更新更新您的问题。你想特别打开一个文件吗?谢谢,我手头有这个解决方案。但我想在最后一种情况下使用它。不过还是谢谢你。在最后一种情况下,我将在windows(IIS)上安装web服务:(下面还有一个使用smbclient
(不同于pysmb尝试重新实现SMB/CIFS)。如果gvfs-fuse-daemon
正在运行,并且共享是否已在当前会话中装入。您可以通过检查~/.gvfs
是否已装入并正在运行gvfs-mount
来确保这一点,但为什么不直接使用GIO呢?
mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smbumount /home/me/WindowsShare