【发布时间】:2017-07-15 20:52:37
【问题描述】:
为了测试数据,我需要快速创建随机文本的大文件。我有一个解决方案,taken from here,如下所示:
import random
import string
n = 1024 ** 2 # 1 Mb of text
chars = ''.join([random.choice(string.letters) for i in range(n)])
with open('textfile.txt', 'w+') as f:
f.write(chars)
我的问题是这需要 653 毫秒才能执行,这对我的使用来说太长了。
有没有更快的方法来快速生成带有随机文本的文本文件?
【问题讨论】:
-
我很好奇,这里的用例是什么?
-
您可以将 random.choice(string.letters) for i in range(n) 放入生成器并使用yield使其更快
-
对 python 使用类似 faker library 之类的东西
-
@JonasAdler 我用 numpy 计时了一个方法,它把这个时间缩短到 370 毫秒。还是太慢了吗?
标签: python string file numpy random