import csv import numpy debug = True chars = [str(d) for d in range(1, 10)] p = [1 for _ in chars] with open('letter_dist.csv', newline='') as csvfile: reader = csv.reader(csvfile, delimiter=',') sp = sum(p) for row in reader: chars.append(row[0]) p.append(float(row[2])) p = numpy.array(p) / sum(p) def random_chars(count): return ''.join(numpy.random.choice(chars, p=p) for _ in range(count)) def str2bool(v): v = v.strip().lower() if v in ["yes", 'y' "true", "t", "1"]: return True if v in ["no", 'n' "false", "f", "0", '', 'null', 'none']: return False raise ValueError('Can not convert `' + v + '` to bool')