我希望使用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()
但是这种解决方案对我来说听起来不太好,因为我需要关闭连接,然后再次打开连接。有更好的方法吗?