使用Python Paramiko over ssh/sftp将文件复制到具有不同文件名的服务器

使用Python Paramiko over ssh/sftp将文件复制到具有不同文件名的服务器,python,sftp,paramiko,file-transfer,file-copying,Python,Sftp,Paramiko,File Transfer,File Copying,我有c:\file\u a.txt,我想把它复制到/home/the\u user/file\u b.txt。如果远程文件已经存在,请替换它,如果不存在,请创建它 这是我的密码: 导入json 进口帕拉米科 从dotenv导入加载\u dotenv 从操作系统导入getenv 从os.path导入join、dirname、expanduser 如果名称=“\uuuuu main\uuuuuuuu”: 加载\u dotenv(join(dirname(\uuuu file\uuu),“.env”)

我有
c:\file\u a.txt
,我想把它复制到
/home/the\u user/file\u b.txt
。如果远程文件已经存在,请替换它,如果不存在,请创建它

这是我的密码:

导入json
进口帕拉米科
从dotenv导入加载\u dotenv
从操作系统导入getenv
从os.path导入join、dirname、expanduser
如果名称=“\uuuuu main\uuuuuuuu”:
加载\u dotenv(join(dirname(\uuuu file\uuu),“.env”))
ssh=paramiko.SSHClient()
加载主机密钥(expanduser(join(“~”,“.ssh”,“已知主机”))
connect(getenv(“ssh\u服务器”),username=getenv(“ssh\u用户”)\
password=getenv(“SSH\u PWD”),key\u filename=getenv(“SSH\u key”))
sftp=ssh.open_sftp()
put(“c:\file\u a.txt”,“/home/the\u user/”)
#我的理解是把一个文件放到一个文件夹中,将工作目录设置到该文件夹中
重命名(“文件a.txt”,“文件b.txt”)
删除(“文件a.txt”)
sftp.close()
ssh.close()
但是我在重命名时遇到了一个
失败
错误。感觉我错过了一些明显的东西,如果有任何提示,我都会很感激


如何使用
Python
中的
paramiko
库通过ssh/sftp/scp将本地文件复制到具有不同文件名的远程文件?

因此直接将文件上载到新名称:

sftp.put("c:\file_a.txt", "/home/the_user/file_b.txt")