【问题标题】:How can I execute a random command line and reproduce the process?如何执行随机命令行并重现该过程?
【发布时间】:2015-01-19 11:20:18
【问题描述】:

一个文件中大约有 100 多个命令;每一行都是一个命令。如何阅读这些命令行并随机执行它们?而且,更重要的是,当出现问题时如何重现该过程(可能使用相同的random.seed)?

【问题讨论】:

  • 第二个问题 - 是的,使用相同的seed。第一个 - 什么?
  • 使用随机种子或某个用户​​指定的种子。

标签: python linux shell command-line


【解决方案1】:

相同的 rand.seed 将给出相同的随机序列,所以是的。

首先,只需将命令读入数组即可。然后使用 0 和 len(command array) - 1 之间的随机数执行该命令并将其从数组中删除。

cmds = file_handle.readlines()
random.seed(seed_number)
while (cmds):
   item = 0
   if (len(cmds) > 0):
       item = random.randrange(len(cmds) - 1)
   exec(cmds[item])   # This is terribly dangerous stuff, and ugly
   cmds.remove(cmds[item])

【讨论】:

  • 为什么不只是random.shuffle(cmds)
  • @jonrsharpe 这也是一个好方法。然后你也许可以使用 map 函数或数组概念 [do_something for for something in a_array] 。出于某种原因,我只是倾向于对整数进行随机化
猜你喜欢
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2021-01-06
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多