#!/usr/bin/env python3 import os import sys import time def dirnames(a, b): dir_a = f"{root}/{a}" dir_b = os.path.join(dir_a, str(b)) if not os.path.exists(dir_a): os.mkdir(dir_a) if not os.path.exists(dir_b): os.mkdir(dir_b) return dir_a, dir_b started = time.time() root = sys.argv[1] if not os.path.exists(root): os.mkdir(root) billion = 10 ** 9 per_level = 10 ** 3 a = b = c = 0 dir_a, dir_b = dirnames(a, b) prev_status = 0 for i in range(billion): filename = os.path.join(dir_b, f"file-{i}") open(filename, "w").close() c += 1 if c == per_level: c = 0 b += 1 if b == per_level: b = 0 a += 1 dir_a, dir_b = dirnames(a, b) percent = 100.0 * float(i) / float(billion) now = time.time() duration = now - started if duration > 1: speed = i / duration else: speed = 1 if speed < 1: print(speed, i, duration) eta = (billion - i) / speed if now - prev_status > 1: sys.stdout.write( f"\rCreated {c} of {billion} files ({percent:.2f}%), at {speed:.0f}/s, {eta:.0f}s remaining" ) prev_status = now sys.stdout.write("\n")