Я ищу приложение, которое создаст файл произвольного размера, заполненный псевдослучайными данными.
Должна быть возможность создавать файлы размером не менее 1 ГБ (чем больше, тем лучше).
Приложение должно работать в Windows , но может иметь графический интерфейс или быть cli инструмента командной строки .
Данные не должны быть действительно случайными, только псевдослучайными.
Программное обеспечение должно быть бесплатным .
Я предпочитаю портативное программное обеспечение с открытым исходным кодом, но ни то, ни другое не является обязательным.
Примечание . Windows 7 с пакетом обновления 1 (SP1) — это самая ранняя версия Windows, которую необходимо поддерживать.
Вы можете использовать Создатель файлов случайных данных (RDFC).
Random Data File Creator, сокращенно RDFC, представляет собой консольное приложение для Microsoft Windows, которое можно использовать для создания бинарных файлов любого размера, заполненных случайными числами. Так, например, разработчики могут создавать очень большие файлы (т.е. 1 ТБ), чтобы проверить, как с ними справляется их собственное приложение.
Вот тест, который я только что запустил в Windows 10, чтобы создать файл размером 100 МБ:
rdfc file.bin 100 MB
Приложение является бесплатным и портативным (не требует установки).
Вы можете использовать Dummy File Creator :
Dummy File Creator 1.2 записывает случайные байты в диапазоне от 0 до 255. Однако, в отличие от предыдущей версии, которая генерирует действительно случайное содержимое файла, Dummy File Creator 1.2 использует другой подход к генерации случайного содержимого, чтобы повысить производительность генерации случайного содержимого. Dummy File Creator теперь будет генерировать 4 МБ случайных данных и повторно использовать одни и те же данные, изменяя только некоторые байты в случайных местах для каждой последующей записи. Хотя результат по-прежнему побеждает все протестированные нами программы сжатия (т. е. сжатый файл больше, чем исходный размер), но все же возможно сжать это псевдослучайное содержимое, если специально разработанный алгоритм сжатия нацелен на создателя фиктивных файлов (очень маловероятно). ) используется. Для разработки такого алгоритма он должен использовать словарные слова длиной от 1 до 4 194 303 байт.
dd для Windows является переносимым и имеет открытый исходный код .
Это Windows-версия популярной утилиты dd для Unix .
Вот пример создания файла размером 100 МБ:
dd bs=100M count=1 if=/dev/random of=C:\tmp\file.dat --progress
Я использовал версию 0.5 в Windows 10.
Python является бесплатным, бесплатным и открытым исходным кодом, кросс-платформенным и может использоваться как скрипт или интерактивно — в зависимости от типа случайного содержимого, которое вам нужно, это будет так же просто, как:
from random import randint
desired_size = 1024*1024*1024 # 1 GByte
with open('RandomData.dat', 'wb') as outfile: # Open for binary output
for x in xrange(desired_size):
outfile.write(chr(randint(0,255))) # Write a random byte
print 'Done.'
Конечно, вы можете расширить вышеуказанное, чтобы запрашивать или получать в командной строке имя файла и желаемый размер, ограничивать диапазон или выводить случайный текст и т. д.
В Python 3 для создания 25 файлов по 10 ГБ каждый:
import os
desired_size = 1024*1024*1024*10 # 10 GBytes
desired_number_of_files = 25
for file_number in range(desired_number_of_files):
filename = 'output_file{0:04d}.dat'.format(file_number)
print('filename: {0}'.format(filename))
with open(filename, 'wb') as fout: fout.write(os.urandom(desired_size))
print('Done.')
Строка, которая генерирует данные (т.е. строка с urandom
), взята из Jon Clements on Making random binary files . Кроме того, если вам интересно: в чем разница между os.urandom() и random? .
Скорость на моем компьютере (Microsoft Windows 10) составляет около 250 МБ/сек.
os.urandom(desired_size)
сначала генерирует длинную строку 10 ГБ, которая занимает ОЗУ. Затем вы передаете его write()
. Вам нужно сгенерировать эту большую строку кусками.. _
По сути, это обычные инструменты командной строки Unix/Linux, перенесенные в Windows.
dd if=/dev/random of=file.img bs=1048576 count=10240
... или около того, работает и здесь, как в отличном ответе @mguassa.
В Windows есть встроенная команда (работает при новой установке без стороннего программного обеспечения, но требует запуска от имени администратора)
fsutil file createnew bigfile.out 10737418240
Объяснение опции: bigfile.out — создаваемый файл (может включать полный путь) 10737418240 — размер файла в байтах (здесь 10 ГБ)
Марджед
Мгуасса
толаче