在 Python 中创建大型随机内容文件

Creating Large Random Content Files in Python

我正在研究 SSD 驱动器的特征以确定最大 TBW/预期寿命。

目前我正在使用 BASH 生成具有随机(非零)内容的 500MB 文件:

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 施加压力。基本上要无限循环这个;一旦驱动器已满,删除最旧的文件并写入新文件,每写入 500 个文件收集 SMART 数据以趋势老化。

想法?

谢谢,

段.

您可以尝试像这样简单的事情。

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)

您可以更新 table 大小以使其变大或变小。我不确定这是否比您已经尝试的效率更高/更低。

os.urandom 选项最适合生成大型随机文件。