ProgressFileWriter.py 478 B

1234567891011121314151617181920
  1. from io import BufferedWriter
  2. class ProgressFileWriter(BufferedWriter):
  3. def __init__(self, path, mode, callback=None):
  4. self.file_handler = open(path, mode)
  5. self.progress = 0
  6. self.callback = callback
  7. super().__init__(self.file_handler, 262144)
  8. def write(self, s):
  9. value = super().write(s)
  10. if self.callback is not None:
  11. self.progress += value
  12. self.callback(self.progress)
  13. return value