summaryrefslogtreecommitdiff
path: root/create-files
blob: 5f311ccbbe1d4516aed1f5e76fa5f5fe72749628 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env python3


import os
import sys
import time


class Progress:
    def __init__(self, goal):
        self.goal = goal
        self.cur = 0
        self.prev = 0

    def inc(self):
        self.cur += 1
        now = time.time()
        if now - self.prev > 1:
            self.prev = now
            self.update()

    def update(self):
        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


root = sys.argv[1]
numfiles = int(sys.argv[2])

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()
    progress.inc()

progress.update()
sys.stdout.write("\n")