2017-05-03 70 views
0

我试图将随机数的结果从awk命令存储到Python变量中。我已经使用os.popen来创建命令,但它总是给我一个相同的数字,当我打印时它是512。 这是行var = os.popen("awk 'BEGIN {print int(9*rand()) ' ' int(9*rand()) }'").read()如何将awk中的值存储在Python变量中

在此先感谢!

+0

**注意:在大多数AWK包括gawk,rand()在内的实现会在每次运行awk时从相同的起始编号或种子开始生成数字。因此,每次运行程序时都会生成相同的结果。这些数字在一个awk运行中是随机的,但从运行到运行可以预测。这对调试很方便,但如果您希望程序在每次使用时都执行不同的操作,则必须将种子更改为每次运行时不同的值。要做到这一点,请使用srand()。** – RomanPerekhrest

+0

非常感谢您的回答和信息。我会尝试。 – xPTM1219

回答

2

提供预期的行为,除非你设置种子

awk 'BEGIN{srand(); ...' 

,另一方面你使用awk随机值生成的,而不是Python中的做法是值得商榷的...

+0

非常感谢您的回答。是的,我知道我应该使用Python随机数字系统,它会容易得多。问题在于这是一个项目,教授想要Python,zenity和awk之间的混合。 – xPTM1219

相关问题