Open Windows shared folder through linux machine

爷,独闯天下 提交于 2019-12-07 05:43:48

问题


I am using python 2.5 on Ubuntu, and there's a machine in the same network called machine1. The folder is shared.

How to to get a file in a specific folder of that machine?

I have tried, with no success:

urllib.urlopen('\\machine1\folder\file.txt')

回答1:


Linux has a utiliy called smbmount, which can be found in package smbutils I believe.

This is a command line utility which mounts a Windows share to a directory on the local machine, optionally with username/password.

smbmount is I believe a utility which runs as root, so whether it's suitable for you I don't know. Maybe it can be used as user.

You could either mount the share by default on the Linux machine, thereby accessing the files on it as local files, or you could do the smbmount / smbumount from within the python script with exec or something like that.

mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smbumount /home/me/WindowsShare

Username and password can be written in a file for some security. Check the man page.

If you need something totally python have a look at pysmb. Terms to google for are python, smb, CIFS.




回答2:


urllib does not understand the SMB protocol. You will need to use gio via pygobject in order to retrieve the file.




回答3:


If the folder is shared, I think it should be mounted in ~/.gvfs. Perhaps you can simply use open on the path as you see it in ~/.gvfs.




回答4:


You should look for the default file browser.

And then you can execute the process and pass in the folder you want as an argument (smb://machine1/folder/).

For example on windows you would do:

execl("explorer.exe", "D:")

Try to look for the path to your file browser (most of the time it's Nautilus).

So:

execl("/bin/nautilus", "smb://.../")

Some info on execl



来源:https://stackoverflow.com/questions/2419953/open-windows-shared-folder-through-linux-machine

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!