pythonprogressbar库反向文件传输速度

2024-04-28 10:56:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我提交了一个关于这个的问题,但想在这里询问任何解决方法/解决方案。你知道吗

对于许多缓慢移动的循环,传输速度大约为.01b/s或.00b/s,这是非常缺乏信息的。有没有办法显示这些案子的s/B?175 s/B更具描述性和帮助性。你有我现在可以使用的解决方法吗?因为看到0.00b/s并不能告诉我循环有多快。你知道吗

https://github.com/WoLpH/python-progressbar/issues/25


Tags: 方法httpsgithubcom信息解决方案issues描述性
1条回答
网友
1楼 · 发布于 2024-04-28 10:56:49

在搜索progressbar的代码并模拟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)

请注意,这将使用单位千秒、兆秒等,而不是分钟和天>;<;。你知道吗

相关问题 更多 >