我想用 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()
但是这个解决方案对我来说听起来并不好,因为我关闭了连接然后再次重新打开它。有更好的方法吗?