【发布时间】:2018-03-12 05:30:00
【问题描述】:
我已经创建了一个伪随机数生成器,并且我正在尝试通过管道输出类似于如果有人运行的数据 “$ 猫 /dev/urandom/” 具体来说,我正在尝试将数据传输到顽固的 RNG 测试套件。
通常情况下,从 urandom 读到死硬的看起来像 "$ cat /dev/urandom | 顽固分子 -a -g 200"
我的程序旨在无限生成数字并在 main 中输出为:
def main():
... # setup and variables
for _ in iter(int,1): # infinite loop
PRNG_VAL = PRNG_FUNC(count_str,pad,1) # returns b'xx'
PRNG_VAL = int(PRNG_VAL,16) # returns integer
sys.stdout.write(chr(PRNG_VAL)) # integer to chr, similar to /dev/urandom type output
显然,当我运行类似 “$ cat ./top.py | 顽固分子……” 结果输出只是文件内容的读取。
我如何运行文件,而不是读取 'top.py' 的内容,并将输出通过管道传输到 dieharder,类似于从 /dev/urandom 读取?
感谢任何帮助!
【问题讨论】:
-
这不是一个真正的 Python 问题,而是一个 shell 问题或一个基本的操作系统问题。但在大多数 POSIX shell 中,答案只是
./top.py | dieharder。cat ./top.py将脚本的内容打印到标准输出;./top.py运行脚本,脚本打印的任何内容都会进入标准输出。