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

我有c:\file_a.txt想要复制到/home/the_user/file_b.txt。如果远程文件已经存在,请替换它,否则请创建它。

这是我的代码:

import json
import paramiko
from dotenv import load_dotenv
from os import getenv
from os.path import join,dirname,expanduser

if __name__ == "__main__":
    load_dotenv(join(dirname(__file__),".env"))
    ssh = paramiko.SSHClient()
    ssh.load_host_keys(expanduser(join("~",".ssh","known_hosts")))
    ssh.connect(getenv("SSH_SERVER"),username=getenv("SSH_USER"),\
       password=getenv("SSH_PWD"),key_filename=getenv("SSH_KEY"))
    sftp = ssh.open_sftp()
    sftp.put("c:\file_a.txt","/home/the_user/")
    # my understanding is putting a file to a folder sets the working directory to that folder
    sftp.rename("file_a.txt","file_b.txt")
    sftp.remove("file_a.txt")
    sftp.close()
    ssh.close()

但是我在重命名时遇到Failure错误。感觉我缺少明显的东西,希望能得到一些指点。

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

相关文章

本文适合有 Python 基础的小伙伴进阶学习 作者:pwwang 一、...
前言 目前有个python应用需要在容器镜像内拉取git私有仓库的...
前言 当网络不稳定或应用页面加载有问题,可以设置等待,避免...
前言 map()、reduce()、filter()是python的三个高阶函数。所...
入门使用 # 示例代码 warframe = ["saryn&quot...
前言 功能描述:批量重命名指定目录下的文件,文件名加前缀,...