#!/usr/bin/env python
# -*- coding:utf-8 -*-
import shutil
import os
from os import path
DIR_SRC = "/home/yosuke/etc/wp/August/"
DIR_DST = "/mnt/data/file/"
class Ccopyfile():
def __init__(self, mem=100*1024*1024):
self._mem = mem
self._vol = 0
self._data = []
def __del__(self):
self.write()
def write(self):
for data, dst in self._data:
with open(dst, "wb") as f:
f.write(data)
self._vol = 0
self._data = []
def append(self, src, dst):
self._vol += path.getsize(src)
with open(src, "rb") as f:
self._data.append((f.read(), dst))
if self._vol > self._mem:
self.write()
if __name__ == "__main__":
myCopy = Ccopyfile()
for root, dirs, files in os.walk(DIR_SRC):
for name in files:
src = path.join(root, name)
myCopy.append(src, path.join(DIR_DST, name))
# shutil.copyfile(src, join(DIR_DST, name))
# shutil.copy(src, DIR_DST)
# os.system('cp "{0}" "{1}"'.format(src, DIR_DST))
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzp1dGYtOCAtKi0KCmltcG9ydCBzaHV0aWwKaW1wb3J0IG9zCmZyb20gb3MgaW1wb3J0IHBhdGggCgpESVJfU1JDID0gIi9ob21lL3lvc3VrZS9ldGMvd3AvQXVndXN0LyIKRElSX0RTVCA9ICIvbW50L2RhdGEvZmlsZS8iCgoKY2xhc3MgQ2NvcHlmaWxlKCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgbWVtPTEwMCoxMDI0KjEwMjQpOgogICAgICAgIHNlbGYuX21lbSA9IG1lbQogICAgICAgIHNlbGYuX3ZvbCA9IDAKICAgICAgICBzZWxmLl9kYXRhID0gW10KCiAgICBkZWYgX19kZWxfXyhzZWxmKToKICAgICAgICBzZWxmLndyaXRlKCkKCiAgICBkZWYgd3JpdGUoc2VsZik6CiAgICAgICAgZm9yIGRhdGEsIGRzdCBpbiBzZWxmLl9kYXRhOgogICAgICAgICAgICB3aXRoIG9wZW4oZHN0LCAid2IiKSBhcyBmOgogICAgICAgICAgICAgICAgZi53cml0ZShkYXRhKQogICAgICAgIHNlbGYuX3ZvbCA9IDAKICAgICAgICBzZWxmLl9kYXRhID0gW10KCiAgICBkZWYgYXBwZW5kKHNlbGYsIHNyYywgZHN0KToKICAgICAgICBzZWxmLl92b2wgKz0gcGF0aC5nZXRzaXplKHNyYykKICAgICAgICB3aXRoIG9wZW4oc3JjLCAicmIiKSBhcyBmOgogICAgICAgICAgICBzZWxmLl9kYXRhLmFwcGVuZCgoZi5yZWFkKCksIGRzdCkpCiAgICAgICAgaWYgc2VsZi5fdm9sID4gc2VsZi5fbWVtOgogICAgICAgICAgICBzZWxmLndyaXRlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgbXlDb3B5ID0gQ2NvcHlmaWxlKCkKICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKERJUl9TUkMpOgogICAgICAgIGZvciBuYW1lIGluIGZpbGVzOgogICAgICAgICAgICBzcmMgPSBwYXRoLmpvaW4ocm9vdCwgbmFtZSkKICAgICAgICAgICAgbXlDb3B5LmFwcGVuZChzcmMsIHBhdGguam9pbihESVJfRFNULCBuYW1lKSkKICAgICAgICAgICAgIyBzaHV0aWwuY29weWZpbGUoc3JjLCBqb2luKERJUl9EU1QsIG5hbWUpKQogICAgICAgICAgICAjIHNodXRpbC5jb3B5KHNyYywgRElSX0RTVCkKICAgICAgICAgICAgIyBvcy5zeXN0ZW0oJ2NwICJ7MH0iICJ7MX0iJy5mb3JtYXQoc3JjLCBESVJfRFNUKSk=