4
from shutil import copy2
6
def RecursiveCount(path):
8
if os.path.isdir(path):
9
for e in os.listdir(path):
10
count += RecursiveCount(os.path.join(path, e))
13
def RecursiveSize(path):
15
for e in os.listdir(path):
16
size += os.path.getsize(os.path.join(path, e))
17
if not os.path.isdir(os.path.join(path, e)):
20
size += RecursiveSize(os.path.join(path, e))
23
def RecursiveCopy(path, dest, callback=None):
24
for e in os.listdir(path):
25
if callback is not None:
26
callback(os.path.join(path, e))
27
if not os.path.isdir(os.path.join(path, e)):
28
copy2(os.path.join(path, e), os.path.join(dest, e))
29
os.chmod(os.path.join(dest, e), os.stat(os.path.join(path, e)).st_mode|stat.S_IWUSR)
31
os.makedirs(os.path.join(dest, e))
32
RecursiveCopy(os.path.join(path, e), os.path.join(dest, e), callback)