Создание больших случайных файлов содержимого в Python - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над характеристикой накопителя SSD, чтобы определить максимальную TBW / ожидаемую продолжительность жизни.

В настоящее время я использую BASH для создания файлов размером 500 МБ со случайным (ненулевым) содержимым:

dd if=<(openssl enc -aes-128-cbc -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero) of=/media/m2_adv3d/abc${stamp1} bs=1MB count=500 iflag=fullblock&

Note : {stamp1} is a time stamp for ensuring unique file names.

Я хочу добиться того же результата в Python, но не нахожу эффективных способов сделать это (быстро сгенерировать файл).

Ищу предложения.

Спасибо!


Обновление

Я экспериментировал со следующим и, похоже, достиг 2-секундной записи;файлы кажутся случайными и разными:

import os

newfile = open("testfile.001", "a")
newfile.write (os.urandom(500000000))    # generate 500MB random content file
newfile.close ()

Немного скептически отношусь к тому, что это действительно достаточно, чтобы подчеркнуть работу SSD.В основном это будет бесконечный цикл;когда накопитель заполнен, удаление старого файла и запись нового, сбор SMART-данных каждые 500 файлов, записанных для определения тенденции старения.

Мысли?

Спасибо,

Дан.

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете попробовать что-нибудь столь же простое, как это.

import pandas as pd
import numpy as np

rows = 100000
cols = 10000

table_size = [rows,cols]

x = np.ones(table_size)
pd.DataFrame(x).to_csv(path)

Вы можете обновить размер таблицы, чтобы она стала больше или меньше.Я не уверен, что это более / менее эффективно, чем то, что вы уже пытаетесь.

...