使用不同的选项标志多次执行 Python 脚本

Key*_*i0r 3 bash python-2.7

我有一个 Python 脚本,使用该parser包设置选项标志(例如-d dataset-s size,最后将结果写入文件中)。如何多次(顺序)运行该命令,每次运行使用不同的选项标志?

我需要这样的东西:

datasets = [a,b,c]
sizes = [100,200,300]

for dataset in dataset:                           #specify parameters
    for size in sizes:                            #specify more parameters
         python script.py -d dataset -s size      #run script
Run Code Online (Sandbox Code Playgroud)

最好的(甚至是“a”)方法是什么?

ran*_*mir 6

将伪/python 代码直接翻译为bash,用数组代替lists 和经典for循环:

#!/bin/bash

datasets=('a' 'b' 'c')
sizes=(100 200 300)

for dataset in "${datasets[@]}"; do
    for size in "${sizes[@]}"; do
        python script.py -d "$dataset" -s "$size"
    done
done
Run Code Online (Sandbox Code Playgroud)

如果sizes更像是一个range,而不是手工挑选的值列表,您可以使用大括号扩展

for size in {100..300..100}; do
    # ...
done
Run Code Online (Sandbox Code Playgroud)

算术for循环:

for ((size=100; size<=300; size+=100)); do
    # ...
done
Run Code Online (Sandbox Code Playgroud)