生成 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(...)
将它们转换为文本。
我编写了这个快速脚本来生成 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(...)
将它们转换为文本。