Мне нужно скопировать множество файлов, созданных в скрипте Python, с локального на удаленный сервер. В командной строке я использую эту строку:
"pscp c:\users\myaccount\documents\foler\file.txt name@server:/home/folder".
Но для этого требуется пароль, который я могу ввести в командной строке.
В моем скрипте Python я «импортирую ОС», затем:
cmd = "pscp local_path server_path"
os.system(cmd)
Но я не знаю, как ввести пароль в моем скрипте.
Спасибо
Если можно использовать оба способа, почему лучше использовать родную библиотеку Python SFTP?
Потому что с хорошо спроектированной собственной библиотекой, такой как Paramiko/pysftp, у вас есть полный контроль над всем. В то время как pscp
имеет ограниченный интерфейс командной строки.
Спасибо, на самом деле пытаюсь использовать библиотеку Paramiko, но я не могу без прав администратора, но с вашей ссылкой это удалось.
попробуйте использовать пакет paramiko https://docs.paramiko.org/en/2.4/
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect("xxx.xxx.xxx.xxx",22,username=xxx,password='',timeout=4)
sftp = s.open_sftp()
sftp.put('/home/me/file.ext', '/remote/home/file.ext')
Не удалось установить библиотеку paramiko без прав администратора, но спасибо
Не гоните консольное приложение для реализации SFTP. Используйте родную библиотеку Python SFTP.