使用 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中的库通过 ssh/sftp/scp 将本地文件复制到具有不同文件名的远程文件Python?


隔江千里
浏览 162回答 1
1回答

MMTTMM

所以将文件直接上传到新名称:sftp.put("c:\file_a.txt", "/home/the_user/file_b.txt")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python