2015-11-17 2 views
7

Я написал простой код для загрузки файла на sftp-сервер в python. Я использую python 2.7Загрузить файл через sftp с помощью python

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() 

Файл не указан на сервере. Однако сообщение об ошибке не появилось. Что не так с кодом?

EDIT: Я включил ведение журнала. Я обнаружил, что файл загружается в корневую папку, а не в общую папку. Похоже, srv.cd('public') не работает.

+1

Это немного трудно сказать из вашего описания. Установите «log =»/tmp/pysftp.log'' при создании соединения и исследуйте файл журнала. –

ответ

10

Я нашел ответ на свой вопрос.

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.put внутри с srv.cd

Смежные вопросы