fork download
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. import shutil
  5. import os
  6. from os import path
  7.  
  8. DIR_SRC = "/home/yosuke/etc/wp/August/"
  9. DIR_DST = "/mnt/data/file/"
  10.  
  11.  
  12. class Ccopyfile():
  13. def __init__(self, mem=100*1024*1024):
  14. self._mem = mem
  15. self._vol = 0
  16. self._data = []
  17.  
  18. def __del__(self):
  19. self.write()
  20.  
  21. def write(self):
  22. for data, dst in self._data:
  23. with open(dst, "wb") as f:
  24. f.write(data)
  25. self._vol = 0
  26. self._data = []
  27.  
  28. def append(self, src, dst):
  29. self._vol += path.getsize(src)
  30. with open(src, "rb") as f:
  31. self._data.append((f.read(), dst))
  32. if self._vol > self._mem:
  33. self.write()
  34.  
  35.  
  36. if __name__ == "__main__":
  37. myCopy = Ccopyfile()
  38. for root, dirs, files in os.walk(DIR_SRC):
  39. for name in files:
  40. src = path.join(root, name)
  41. myCopy.append(src, path.join(DIR_DST, name))
  42. # shutil.copyfile(src, join(DIR_DST, name))
  43. # shutil.copy(src, DIR_DST)
  44. # os.system('cp "{0}" "{1}"'.format(src, DIR_DST))
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty