python - 使用 Python Paramiko over 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
在重命名时遇到错误。感觉就像我遗漏了一些明显的东西,并希望得到任何指示。
如何使用 ssh/sftp/scp 中的paramiko
库将本地文件复制到具有不同文件名的远程文件Python
?
解决方案
所以直接将文件上传到新名称:
sftp.put("c:\file_a.txt", "/home/the_user/file_b.txt")
推荐阅读
- excel - 如何使用excel VBA连接cisco any connect
- php - 回调codeigniter无法访问
- sql-server - SQL Server 存储过程中的子例程
- c# - 在活动 Word 文档上粘贴 Excel 范围会打开应用程序的打印驱动程序主机
- linux - 与 STM32F1x 和 ST-Link 的 OpenOCD 连接
- javascript - 具有多个条件的 JS 嵌套三元
- node.js - 如何更新猫鼬数组中的元素?
- c - How to multithread in C
- python - 子弹如何反射墙壁
- javascript - Next.js static site generation, why is getStaticProps params empty?