os.path
関数は、同じコンピュータ上のファイルでのみ機能します。それらはのパスで動作し、[email protected]:b.jpeg
はパスではありません。
これを実行するには、スクリプトをリモートで実行する必要があります。このような何か通常、動作します:
def exists_remote(host, path):
"""Test if a file exists at path on a host accessible with SSH."""
status = subprocess.call(
['ssh', host, 'test -f {}'.format(pipes.quote(path))])
if status == 0:
return True
if status == 1:
return False
raise Exception('SSH failed')
ファイルを持つ別のサーバー上に存在するのであれば、あなたが得ることができるが:
if exists_remote('[email protected]', 'b.jpeg'):
# it exists...
これは、おそらくよりもおそらくもっと、信じられないほど遅くなることに注意してください100ms。
「サーバー」とはどういう意味ですか?それはsshサーバーですか? 'os.path'モジュールがネットワークプロトコルを理解していないことは確かです。もちろん、ネットワークパスがファイルシステムのどこかにマウントされていれば、そのパス経由でアクセスすることができます。 – DaveP
はいそれはsshサーバ –