1234567891011121314151617181920212223242526 |
- import os
- import sys
- import threading
- class ProgressPercentage(object):
- def __init__(self, filename):
- self._filename = filename
- self._size = float(os.path.getsize(filename))
- self._seen_so_far = 0
- self._lock = threading.Lock()
- def __call__(self, bytes_amount):
- # To simplify, assume this is hooked up to a single filename
- with self._lock:
- self._seen_so_far += bytes_amount
- percentage = (self._seen_so_far / self._size) * 100
- sys.stdout.write(
- "\r%s / %s (%.2f%%)\n" % (
- self._seen_so_far, self._size,
- percentage
- )
- )
- sys.stdout.flush()
|