Linuxマシンを介してWindows共有フォルダーを開きます
質問
UbuntuでPython 2.5を使用していますが、同じネットワークに呼ばれるマシンがあります machine1
. 。フォルダーが共有されます。
そのマシンの特定のフォルダーにファイルを取得する方法は?
私は試してみましたが、成功しませんでした:
urllib.urlopen('\\machine1\folder\file.txt')
解決
Linuxには、呼ばれる活動があります smbmount
, 、これは私が信じているパッケージsmbutilsにあります。
これは、オプションでユーザー名/パスワードを使用して、ローカルマシンのディレクトリにWindows共有をマウントするコマンドラインユーティリティです。
smbmountは、ルートとして実行されるユーティリティだと思うので、それがあなたに適しているかどうかはわかりません。多分それはユーザーとして使用できます。
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を見ています 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