Guest User

Untitled

a guest
Nov 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. """
  2. Simple cli based progress bar module for Python 2/3
  3.  
  4. Example:
  5.  
  6. import time
  7. import progressbar
  8.  
  9. bar = progressbar.ProgressBar(range(10))
  10.  
  11. for x in bar:
  12. time.sleep(0.5)
  13. """
  14.  
  15. __author__ = '@laszlokuehl'
  16.  
  17. import sys
  18.  
  19. class ProgressBar:
  20. def __init__(self, data, length=50):
  21. self.data = data
  22. self.length = float(length)
  23. self.multip = 100 / self.length
  24. self.used = 0
  25. self.current = 0
  26.  
  27. def __str__(self):
  28. return str(self.data)
  29.  
  30. def __repr__(self):
  31. return self.__str__()
  32.  
  33. def __iter__(self):
  34. for val in self.data:
  35. self.printBar()
  36. yield val
  37.  
  38. self.printBar(); print('')
  39.  
  40. def printBar(self):
  41. bar = '\r[%s%s | %s/%s | %d%% ] ' % (
  42. '=' * int(self.current), '-' * int(self.length - self.current),
  43. self.used, len(self.data), int(self.current * self.multip))
  44.  
  45. sys.stdout.write(bar)
  46. sys.stdout.flush()
  47.  
  48. self.current += self.length / len(self.data)
  49. self.used += 1
Add Comment
Please, Sign In to add comment