python sftp.put 显示进度
时间: 2024-02-24 19:58:07 浏览: 83
要在Python中使用SFTP上传文件并显示进度,你可以使用paramiko库中的SFTPClient.put()方法和tqdm库来实现。下面是一个简单的代码示例:
```python
import paramiko
from tqdm import tqdm
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')
sftp = ssh.open_sftp()
local_path = '/path/to/local/file'
remote_path = '/path/to/remote/file'
filesize = os.path.getsize(local_path)
with tqdm(total=filesize, unit='B', unit_scale=True) as pbar:
sftp.put(local_path, remote_path, callback=lambda x: pbar.update(x))
sftp.close()
ssh.close()
```
在这个例子中,我们使用了tqdm库来创建一个进度条,并在SFTP上传文件时更新进度条。`callback`参数接受一个函数作为参数,该函数在上传每个块时被调用,并将该块的大小作为参数传递给它,因此我们可以使用它来更新进度条。
阅读全文