我正在使用python3.3.2和pysftp制作一个备份工具,它可以将文件的副本存储在我网络上的另一台计算机上。
我已经知道如何使用pysftp传输这些文件,但是我希望看到传输进度(每秒字节数、完成百分比、剩余时间),而不是一些静态的print语句来指示传输已开始或已完成
可能类似于以下内容(文件名:3.4MiB/s| 40%〈########============〉|剩余时间0:03:54)
编辑:如果我知道如何使用pysftp的put命令来生成信息,我可能会创建一个进度条,这就是我想知道的
编辑:我想我找到了另一个问题的答案后,广泛挖掘:
How to see (log) file transfer progress using paramiko?
5条答案
按热度按时间14ifxucb1#
get/put方法中都存在回调函数(参见官方文档)
其中callback可能类似于:
kqqjbcuj2#
您可以创建一个函数,每10%打印一次转账:
然后可以在get或put命令中调用该函数,如下所示:
输出示例为:
qltillow3#
xxb16uws4#
如果要使用tqdm进度栏:
eyh26e7m5#
你可以编写自己的进度条,如果你对终端有所了解的话,这是相当简单的,或者你可以使用
progressbar
,下面是文档中的一个简单例子:在这两种情况下,你都需要文件传输方法在传输过程中产生一些东西,如果你能让它产生它接收到的字节,那么创建一个进度条是非常容易的。