web-dev-qa-db-ja.com

python

Pythonでファイルをsftpサーバーにアップロードする簡単なコードを書きました。私はpython 2.7を使用しています

_import pysftp

srv = pysftp.Connection(Host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")

srv.cd('public') #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/

# Closes the connection
srv.close()
_

ファイルはサーバーに表示されませんでした。ただし、エラーメッセージは表示されませんでした。コードの何が問題になっていますか?

編集:ロギングを有効にしました。ファイルがパブリックフォルダではなくルートフォルダにアップロードされていることを発見しました。 srv.cd('public')が機能しなかったようです。

10
user781486

自分の質問に対する答えを見つけました。

import pysftp

srv = pysftp.Connection(Host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")

with srv.cd('public'): #chdir to public
    srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/

# Closes the connection
srv.close()

srv.putsrv.cdで内部に配置します

24
user781486