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) | |