Как мне сгенерировать файл .txt, заполненный произвольными числами, при этом он должен весить ровно 1 гигабайт?
from random import randrange
with open("input.txt", "w") as file:
print(randrange(-100,100), file=file)
Написал пока только это, оно записывает только 1 значение
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Один из способов - вывод строк, сформатированных до заданной длины. В текстовых файлах Windows конец строки занимает два байта, поэтому я сделал ширину 6.
with open("f:\input.txt", "w") as file:
for i in range(1024 // 8):
print("{0:>6}".format(randrange(-100,100)), file=file)
А чтобы не было пустого места, можно суммировать длины сгенерированных строк, пока не дойдёт до нужной длины, и в конце докинуть строку пробелов нужной длины.
size = 0
with open("f:\input.txt", "w") as file:
while True:
s = str(randrange(-100,100))
if size + len(s) + 2 < 1024:
print(s, file=file)
size += len(s) + 2
else:
print(' '*(1024 - size), file=file, end = '')
break