無限ファイルのような本を読みました/dev/random
が、次のコードを設定してコンテンツがどのように見えるかを確認すると、何も出力されません。
with open("/dev/random") as f:
for i in xrange(10):
print f.readline()
ところで、これを で試したところ/dev/urandom
、うまくいきました。
FWIW、セミポータブルな方法でこのストリーム(またはそれに似たもの)にアクセスするための推奨される方法はos.urandom()です
ランダムな行ではなく、ランダムなバイトを出力しています。改行を取得するまで何も表示されません。改行は平均で256バイトごとにのみ発生します。動作しているように見える理由/dev/urandom
は、単に動作が速いからです。長く待つか、読む量を減らすか、を使用します/dev/urandom
。
with open("/dev/random", 'rb') as f:
print repr(f.read(10))