5

私はUbuntuでpython2.5を使用していますが、同じネットワークに。という名前のマシンがありますmachine1。フォルダは共有されます。

そのマシンの特定のフォルダにファイルを取得するにはどうすればよいですか?

私は試しましたが、成功しませんでした:

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

4 に答える 4

6

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です。

于 2010-03-10T20:05:04.773 に答える
2

urllibSMBプロトコルを理解していません。gioファイルを取得するには、pygobjectを介して使用する必要があります。

于 2010-03-10T19:56:05.170 に答える
0

フォルダが共有されている場合は、〜/.gvfsにマウントする必要があると思います。おそらくopen、〜/ .gvfsに表示されているように、パス上で単純に使用できます。

于 2010-03-10T20:05:36.877 に答える
-1

デフォルトのファイルブラウザを探す必要があります。

次に、プロセスを実行して、引数として必要なフォルダー(smb:// machine1 / folder /)を渡すことができます。

たとえば、Windowsでは次のようにします。

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

ファイルブラウザへのパスを探してみてください(ほとんどの場合、Nautilusです)。

それで:

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

execlに関するいくつかの情報

于 2010-03-10T19:44:37.123 に答える