Загружайте файлы с помощью SFTP в Python, но создавайте каталоги, если путь не существует.Python

Программы на Python
Anonymous
Загружайте файлы с помощью SFTP в Python, но создавайте каталоги, если путь не существует.

Сообщение Anonymous »

Я хочу загрузить файл на удаленный сервер с Python. Я хотел бы заранее проверить, действительно ли существует удаленный путь, и если нет, создать его. В псевдокоде:

Код: Выделить всё

if(remote_path not exist):
create_path(remote_path)
upload_file(local_file, remote_path)
Я думал о выполнении команды в Paramiko для создания пути (например, mkdir -p Remote_path). У меня получилось следующее:

Код: Выделить всё

# I didn't test this code

import paramiko, sys

ssh = paramiko.SSHClient()
ssh.connect(myhost, 22, myusername, mypassword)
ssh.exec_command('mkdir -p ' + remote_path)
ssh.close

transport = paramiko.Transport((myhost, 22))
transport.connect(username = myusername, password = mypassword)

sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(local_path, remote_path)
sftp.close()

transport.close()
Но мне это решение не кажется хорошим, потому что я закрываю соединение, а затем снова открываю его. Есть ли лучший способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/148 ... esnt-exist

Вернуться в «Python»