生成 200,000 个哈希的列表并保存到文件

Generate list of 200,000 hashes and save to file

我编写了这个快速脚本来生成 200,000 个哈希随机值并将它们保存到文件中,但是当我 运行 文件时出现此错误:“TypeError: expected a character buffer object”在线: file_.write(hash)

import random

hash = random.SystemRandom()
file_ = open('output.txt', 'w')

count = 0

while count < 200000:
    file_.write(hash)

file_.close()

我做错了什么?谢谢。

您收到错误是因为散列不是可以写入文件的类型。如果你只想获得一定数量的随机位,并将其写入文件,你可以做 hash.getrandbits(<number of bits>),尽管这会给你一个整数作为输出。此外,您的循环不会终止,因为您没有增加计数。我建议改用 for 循环。

发现你做错了什么:

打开交互式 shell,键入您的脚本位:

>>> import random
>>>
>>> random.SystemRandom()
<random.SystemRandom object at 0x03FD83C8>

这不是数字,也不是文本。您不能将其写入文件。

查看文档:

https://docs.python.org/2/library/random.html#random.SystemRandom

这是一个随机数生成器。你需要像random一样使用它。 random.random()random.randint(...) 之类的。

然后在写入文件之前使用 str(...) 将它们转换为文本。