Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import string
- import json
- # Константы
- # 1099511627776 = 1 Tibibyte 1024^4
- # 1073741824 = 1 Gibibyte 1024^3
- total_size_to_generate = 450000000000 # Примерное значение в байтах
- max_concurent = 16
- output_file = 'filelist.txt'
- # Функция для генерации реквизитов файла
- def generate_file_specs():
- hex_chars = '23456789abcdef'
- folder = ''.join(random.choice(hex_chars) for _ in range(2))
- filename = ''.join(random.choice(string.hexdigits.lower()) for _ in range(51)) + '.sj1'
- filesize = random.randint(4096, 1000000)
- return {
- 'folder': folder,
- 'filename': filename,
- 'filesize': filesize
- }
- # Основной цикл
- def main_loop(total_size_to_generate, max_concurent, output_file):
- bytes_generated = 0
- finished = 0
- with open(output_file, 'a') as f:
- while bytes_generated < total_size_to_generate:
- num_files = random.randint(1, max_concurent)
- files = []
- for _ in range(num_files):
- file_specs = generate_file_specs()
- files.append(file_specs)
- # Выход из цикла, если достигли нужного объема
- if (bytes_generated + file_specs['filesize']) >= total_size_to_generate:
- finished = 1
- break
- bytes_generated += file_specs['filesize']
- # Выход из внешнего цикла, если достигли нужного объема
- if finished:
- print( f"bytes generated {bytes_generated} of {total_size_to_generate}")
- break
- else:
- # Сохраняем в файл
- f.write(json.dumps(files) + '\n')
- # Запуск основного цикла
- main_loop(total_size_to_generate, max_concurent, output_file)
Advertisement
Add Comment
Please, Sign In to add comment