我在一本书中读到/dev/random
就像是一个无限的文件,但是当我设置下面的代码来查看内容是什么样子的时候,它什么都不打印。如何在python中读取/ dev/random
with open("/dev/random") as f:
for i in xrange(10):
print f.readline()
顺便说一句,当我试着用/dev/urandom
这个,它的工作。
我在一本书中读到/dev/random
就像是一个无限的文件,但是当我设置下面的代码来查看内容是什么样子的时候,它什么都不打印。如何在python中读取/ dev/random
with open("/dev/random") as f:
for i in xrange(10):
print f.readline()
顺便说一句,当我试着用/dev/urandom
这个,它的工作。
with open("/dev/random", 'rb') as f:
print repr(f.read(10))
看起来像/ dev/random阻塞了你。这是一个体面的解释。
http://www.onkarjoshi.com/blog/191/device-dev-random-vs-urandom/
FWIW,在一个半便携式的方式访问这个流(或类似的东西)的首选方式是os.urandom()
对于'os.urandom'的+1 +1 –
'os.urandom'在Linux系统上返回'/ dev/urandom',这是一个不同的流(不太安全,但速度更快)。 – soulseekah
你为什么要读*线*从随机二进制设备? –
@ IgnacioVazquez-Abrams所以它里面的二进制内容?然后'readline'必须等待一个不存在的回车。但是为什么它对/ dev/urandom起作用呢? – satoru