9

我读过一本/dev/random像无限文件的书,但是当我设置以下代码以查看内容的样子时,它什么也没打印。

with open("/dev/random") as f:
    for i in xrange(10):
        print f.readline()

顺便说一句,当我尝试使用 时/dev/urandom,它起作用了。

4

3 回答 3

18

FWIW,以半便携式方式访问此流(或类似的东西)的首选方式是os.urandom()

于 2012-06-26T04:41:48.570 回答
9

它输出随机字节,而不是随机行。在你得到一个换行符之前你什么都看不到,平均每 256 个字节才会发生一次。原因/dev/urandom似乎很简单,因为它运行得更快。等待更长的时间,减少阅读,或使用/dev/urandom.

于 2012-06-26T04:19:44.757 回答
7
with open("/dev/random", 'rb') as f:
    print repr(f.read(10))
于 2012-06-26T04:12:13.273 回答