Spaces:
Sleeping
Sleeping
import sys | |
def split(fn, max_size): | |
f = open(fn, 'rb') | |
block_size = 1024 | |
max_n = int(max_size/block_size) | |
i = 0 | |
while True: | |
block = f.read(block_size) | |
if not block: | |
try: | |
w.close() | |
print(f"[Done] Completed.") | |
except: | |
pass | |
break | |
i += 1 | |
if i % max_n == 1: | |
w = open(f"{fn}.part.{(i//max_n)+1}", 'wb') | |
print(f"[Start] Creating {fn}.part.{(i//max_n)+1} ...") | |
w.write(block) | |
if i % max_n == 0: | |
w.close() | |
print(f"[Done] Closing {fn}.part.{(i//max_n)} ...") | |
def merge(fn): | |
import glob | |
fns = sorted(glob.glob(f"{fn}*")) | |
w = open(f"{fn}.copy", 'wb') | |
for fn in fns: | |
f = open(fn, 'rb') | |
w.write(f.read()) | |
f.close() | |
w.close() | |
if __name__ == '__main__': | |
cmd = sys.argv[1] | |
fn = sys.argv[2] | |
if cmd == 'split': | |
max_size = int(sys.argv[3]) | |
split(fn, max_size) | |
elif cmd == 'merge': | |
merge(fn) | |