使用Paramiko操作sftp

Paramiko库操作SFTP的一些常用示例:

  1. 连接SFTP服务器
import paramiko

transport = paramiko.Transport(('hostname', port))
transport.connect(username='username', password='password')

sftp = paramiko.SFTPClient.from_transport(transport)
  1. 下载文件
sftp.get('/remote/file/path', '/local/file/path')
  1. 上传文件
sftp.put('/local/file/path', '/remote/file/path')
  1. 列出远程目录中的文件
files = sftp.listdir('/remote/dir/path')
for file in files:
    print(file)
  1. 创建远程目录
sftp.mkdir('/remote/dir/path')
  1. 删除远程文件
sftp.remove('/remote/file/path')
  1. 删除远程目录
sftp.rmdir('/remote/dir/path')
  1. 关闭连接
sftp.close()
transport.close()
使用paramiko库中的SFTP来上传文件夹时,需要进行递归操作。以下是一个示例代码,可以帮助您实现这一功能: ```python import paramiko import os def upload_folder(ssh_client, local_path, remote_path): sftp = ssh_client.open_sftp() try: os.chdir(local_path) for root, dirs, files in os.walk("."): for file in files: local_file_path = os.path.join(root, file) remote_file_path = os.path.join(remote_path, os.path.relpath(local_file_path, local_path)) sftp.put(local_file_path, remote_file_path) finally: sftp.close() # 创建SSH客户端对象 client = paramiko.SSHClient() # 设置自动添加和保存SSH密钥 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: # 连接到目标主机 client.connect(host, username='your_username', password='your_password') # 上传文件夹 local_folder_path = '/path/to/local/folder' remote_folder_path = '/path/to/remote/folder' upload_folder(client, local_folder_path, remote_folder_path) # 关闭连接 client.close() except Exception as e: print(f"连接到主机失败:{str(e)}") ``` 在示例代码中,`upload_folder` 函数用于递归地上传文件夹。它使用了 `os.walk` 来遍历本地文件夹中的所有文件,并使用 `sftp.put` 来上传每个文件。`local_path` 参数是本地文件夹的路径,`remote_path` 参数是远程文件夹的路径。请根据实际情况修改这些路径。 请注意,示例代码中的 `host`、`your_username` 和 `your_password` 应该替换为目标主机的相关信息。确保您已经正确配置了SSH连接和权限。 希望这可以帮助到您!如果您有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值