sftp上传文件夹

情景:利用sftp中将本地文件夹/home/sentiment/Data (内包含子文件夹) ,复制到服务器的/home/work目录下 

命令: put

步骤:

1.首先定位到远程/home/work/目录下: cd /home/work/

2.在word目录下新建Data文件夹: mkdir Data

3.进入远程Data文件夹: cd Data

4.本地定位到sentiment文件夹下: lcd /home/sentiment/

(可以用命令lls查看下,Data应该是在本地这个目录下的)

5.执行关键命令: put -r Data/.

6.刷刷刷............................本地Data文件夹的东西(包括各种子文件夹)就全部复制到远程Data中

在使用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、付费专栏及课程。

余额充值