質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top