私はUbuntuでpython2.5を使用していますが、同じネットワークに。という名前のマシンがありますmachine1
。フォルダは共有されます。
そのマシンの特定のフォルダにファイルを取得するにはどうすればよいですか?
私は試しましたが、成功しませんでした:
urllib.urlopen('\\machine1\folder\file.txt')
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が必要な場合は、pysmbを参照してください。グーグルの用語は、python、smb、CIFSです。
urllib
SMBプロトコルを理解していません。gio
ファイルを取得するには、pygobjectを介して使用する必要があります。
フォルダが共有されている場合は、〜/.gvfsにマウントする必要があると思います。おそらくopen
、〜/ .gvfsに表示されているように、パス上で単純に使用できます。
デフォルトのファイルブラウザを探す必要があります。
次に、プロセスを実行して、引数として必要なフォルダー(smb:// machine1 / folder /)を渡すことができます。
たとえば、Windowsでは次のようにします。
execl("explorer.exe", "D:")
ファイルブラウザへのパスを探してみてください(ほとんどの場合、Nautilusです)。
それで:
execl("/bin/nautilus", "smb://.../")
execlに関するいくつかの情報