Enviar um ficheiro através do sftp com o python

escrevi um código simples para enviar um ficheiro para um servidor sftp em python. Estou a usar o 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()

o ficheiro não apareceu no servidor. No entanto, não apareceu nenhuma mensagem de erro. Qual é o problema do Código?

editar: activei o registo. Descobri que o ficheiro é carregado para a pasta raiz e não para a pasta pública. Parece que srv.cd('public') não funcionou.

Author: user781486, 2015-11-17

1 answers

Encontrei a resposta à minha pergunta.
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()

Põe o srv.put lá dentro com srv.cd

 15
Author: user781486, 2015-11-17 08:53:16