所以这个问题是基于我正在做的一个随机项目。基本上,这个项目中包含许多较小的脚本,我想做的是先随机播放然后有时只播放。
所以这是我的意思的示例(因为如果我发布所有脚本,它将变得凌乱)。可以说我有5个脚本,它们都是一个较大项目的一部分。像这样的东西。
Project 1 which has 5 scripts inside which are:
Script 1
Script 2
Script 3
Script 4
Script 5
所以我想做的就是以不同的顺序随机播放这些脚本。因此,对于第一个运行,我想播放脚本1,然后让脚本2然后是脚本5,但跳过脚本3和4。对于下一个运行,我希望能够播放脚本3和脚本5,但跳过其他脚本。这可能吗?任何建议表示赞赏。谢谢您的时间
答案 0 :(得分:1)
您当然可以随机选择任意数量的脚本,例如假设您想在2
和5
脚本之间运行10次,则只需执行以下操作即可:
import random
scripts = ['script1', 'script2', 'script3', 'script4', 'script5']
number_of_runs = 10
for run in range(number_of_runs):
for script in random.sample(scripts, k=random.randint(2, 5)):
print("Run {}: {}".format(run, script))
# execute script
答案 1 :(得分:1)
我能想到的一种方法是随机生成排列序列:
files=['script1.py','script2.py','script3.py']
n=len(files)
sequence=list(np.random.permutation(n)) #generate a random permuation
要跳过一些文件:
skip=np.random.randint(n)
for i in range(skip):
num_to_remove=np.random.randint(n)
if(num_to_remove in sequence):
sequence.remove(num_to_remove)
执行剩余的
for i in sequence:
exec(open(files[i]).read()) #execute file
答案 2 :(得分:0)
创建一个字典,键是整数,值是脚本的名称。 然后使用random.randint(1,number_of_scripts)获取字典的随机索引,然后运行 os.system(dict [random.randint(1,number_of_scripts)-1])