Как скопировать файл из Windows в Linux с помощью библиотеки Paramiko в python

Я использую библиотеку Paramiko для подключения по ssh к Linux-машине и из Windows, и мне нужно скопировать файл из Windows в Linux.

Скрипт python будет выполняться из Windows

Путь Windows:

uploadlocalfilepath = C:\Test\Auto\file.txt

Линукс путь:

путь к удаленному файлу загрузки =\tmp

Я пробовал следующее для подключения к Linux-машине:

        self.client = paramiko.SSHClient()
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.client.connect(self.host, username=self.username, password=self.password)

А затем ниже для копирования файла:

         ftp_client= self.client.open_sftp()
         ftp_client.put(self.uploadlocalfilepath,self.uploadremotefilepath)

Есть ли какие-либо ограничения в том, чтобы сделать то же самое от Paramiko. Любая помощь приветствуется

Ошибка:

Файл C:\Users\testuser\AppData\Local\Programs\Python\Python38\lib\site-packages\paramiko\sftp_client.py, строка 759, вставить return self.putfo(fl, remotepath, file_size, обратный вызов, подтвердить) Файл C:\Users\testuser\AppData\Local\Programs\Python\Python38\lib\site-packages\paramiko\sftp_client.py, строка 714, в putfo с self.file(remotepath, wb) as fr: File C: \Users\testuser\AppData\Local\Programs\Python\Python38\lib\site-packages\paramiko\sftp_client.py, строка 372, в open t, msg = self._request(CMD_OPEN, имя файла, imode, attrblock) Файл C :\Users\testuser\AppData\Local\Programs\Python\Python38\lib\site-packages\paramiko\sftp_client.py, строка 813, в _request return self._read_response(num) File C:\Users\testuser\AppData\ Local\Programs\Python\Python38\lib\site-packages\paramiko\sftp_client.py, строка 865, в файле _read_response self._convert_status(msg) C:\Users\testuser\AppData\Local\Programs\Python\Python38\lib \site-packages\paramiko\sftp_client.py, строка 898, в _convert_status поднять IOError(т.е. xt) OSError: Ошибка


person sip_xxx    schedule 13.11.2020    source источник
comment
См. раздел Загрузка файла через SFTP (Paramiko) в Python приводит к ошибке IOError: Failure. + В Linux в путях используется прямая, а не обратная косая черта. Так и должно быть uploadremotefilepath = "/tmp/file.txt"   -  person Martin Prikryl    schedule 13.11.2020
comment
Большое спасибо @MartinPrikryl ..... Моя ошибка ... обратная косая черта была опечаткой .. Проблема была решена, когда я указал имя файла также в пути к удаленному файлу, а не только в каталоге.   -  person sip_xxx    schedule 13.11.2020
comment
Отвечает ли это на ваш вопрос? Загрузка файла через SFTP (Paramiko) в Python дает IOError: Ошибка   -  person Martin Prikryl    schedule 16.11.2020
comment
@MartinPrikryl ... Да ... Я проголосовал за вопрос и ответ по предоставленной вами ссылке.   -  person sip_xxx    schedule 17.11.2020
comment
Поэтому, пожалуйста, примите, что ваш вопрос дублируется.   -  person Martin Prikryl    schedule 17.11.2020