如何从命令行迭代和执行脚本?

时间:2011-07-13 23:13:09

标签: python subprocess

我有一个程序,我从命令行运行,带有两个文件参数,如下所示:

$ my_program

我想编写一个python脚本,可以使用不同的文件参数来运行此程序的迭代。例如:

$ my_program <file_1> <file_4>
$ my_program <file_2> <file_4>
$ my_program <file_3> <file_4>
...

我正在尝试使用python中的子进程模块来运行此程序的迭代。我似乎无法弄清楚我是如何迭代throguth不同的文件参数,然后从命令行运行这些命令中的每一个。任何人都可以指出我正确的方向或提供一些示例代码,以解释如何做到这一点。在此先感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

从我收集的内容来看,你需要这样的东西:

cmds = [path_to_program, arg1, arg2]
subprocess.Popen(cmds)

然后,如果你想迭代许多,比如:

cmds = [('file1', 'file4'), ('file2', 'file4'), ('file3', 'file4')]
for arg1, arg2 in cmds:
    subprocess.Popen([path_to_program, arg1, arg2])

答案 1 :(得分:0)

for fname in ('1', '2', '3'):
  do_something_with(['a', fname, 'b'])

根据需要替换for循环和函数调用中的序列。

答案 2 :(得分:0)

您正在寻找的是做一个bash脚本。在那里,您可以像在命令行中那样执行这些命令。

你可以进入你的主要功能并执行它,但它不会那么灵活。