通過對進度代碼搜索和仿效FileTransferSpeed
下課後,這裏是我想出了一個解決方案,你可以在你的代碼撲通的FileTransferSpeed()
class InvFileTransferSpeed(Widget):
'Widget for showing the transfer speed (useful for file transfers).'
format = '%6.2f %ss/%s'
prefixes = ' kMGTPEZY'
__slots__ = ('unit', 'format')
def __init__(self, unit='loop'):
self.unit = unit
def update(self, pbar):
'Updates the widget with the current SI prefixed speed.'
if pbar.seconds_elapsed < 2e-10 or pbar.currval < 2e-10: # =~ 0
scaled = power = 0
else:
speed = pbar.seconds_elapsed/pbar.currval
power = int(math.log(speed, 1000))
scaled = speed/1000.**power
return self.format % (scaled, self.prefixes[power], self.unit)
注意代替,這將使用單位千分之一,兆字節等,而不是分鐘和天數>。 <。