summaryrefslogtreecommitdiff
path: root/create-files
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-12-25 15:10:55 +0200
committerLars Wirzenius <liw@liw.fi>2020-12-25 15:10:55 +0200
commit61e1d9067b23ca068f7e04b463e9454e2ca39f27 (patch)
treea975689fede73d5892a2c0901e587517249784a8 /create-files
parent796d7ea1d304862e5e16e8bc6bb97cf22f1e63c0 (diff)
downloadbillion-files-61e1d9067b23ca068f7e04b463e9454e2ca39f27.tar.gz
simlify code
Diffstat (limited to 'create-files')
-rwxr-xr-xcreate-files88
1 files changed, 43 insertions, 45 deletions
diff --git a/create-files b/create-files
index 9aac59b..ac53c84 100755
--- a/create-files
+++ b/create-files
@@ -6,55 +6,53 @@ 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
+class Progress:
+ def __init__(self, goal):
+ self.goal = goal
+ self.cur = 0
+ self.pref = time.time()
+
+ def inc(self):
+ self.cur += 1
+ self.update
+
+ def update(self):
+ now = time.time()
+ if now - self.prev > 1:
+ self.prev = now
+ sys.stdout.write(f"\r{self.cur}/{self.goal}")
+ sys.stdout.flush()
+
+
+class Filenames:
+ def __init__(self, numfiles, root):
+ self.numfiles = numfiles
+ self.root = root
+ self.perlevel = 1000
+
+ def filenames(self):
+ a = b = 0
+ for i in range(self.numfiles):
+ dirname = f"{self.root}/{a}/{b}"
+ yield f"{dirname}", f"{dirname}/file-{i}"
+ if (i % self.perlevel) == 0:
+ b += 1
+ if b > self.perlevel:
+ b = 0
+ a += 1
-started = time.time()
-
root = sys.argv[1]
numfiles = int(sys.argv[2])
-if not os.path.exists(root):
- os.mkdir(root)
-
-per_level = 10 ** 3
-a = b = c = 0
-dir_a, dir_b = dirnames(a, b)
-prev_status = 0
-for i in range(numfiles):
- 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(numfiles)
- now = time.time()
- duration = now - started
- if duration > 1:
- speed = i / duration
- else:
- speed = 1
- if speed < 1:
- print(speed, i, duration)
- eta = (numfiles - i) / speed
-
- if now - prev_status > 1:
- sys.stdout.write(
- f"\rCreated {i} of {numfiles} files ({percent:.2f}%), at {speed:.0f}/s, {eta:.0f}s remaining"
- )
- prev_status = now
+progress = Progress(numfiles)
+filenames = Filenames(numfiles, root)
+
+prevdir = None
+for (dirname, filename) in filenames.filenames():
+ if dirname != prevdir:
+ prevdir = dirname
+ os.makedirs(dirname)
+ open(filename, "w").close()
sys.stdout.write("\n")