如何在linux命令行中自动化需要两个输入的python程序?

时间:2020-06-16 16:43:08

标签: python linux

我有一个已解析为linux命令行的python程序。它需要两个输入。第一个输入将始终是相同的,并且我希望第二个输入在1-1030之间的任何地方。是否有办法让python在命令行中自动运行它,并且每次将第二个输入增加+1?我想这样做,所以我不必手动输入第二个输入1030次。

我的命令行如下所示:

$ python ex_script.py -d (first input) -r (second input)

3 个答案:

答案 0 :(得分:1)

从命令行获取输入有多种可能性

  1. 使用import syssys.argv[n]将为您提供第n个命令行输入的字符串。
  2. 使用诸如argparse之类的库

为避免第二个参数,一个非常简单的解决方法是将一个计数器写入文件,并使您的程序读取该文件中的数字,将其增加一个以覆盖该文件。您也可以在程序中检查该数字是否小于1030。

答案 1 :(得分:1)

我将编写一个简短的第二个脚本,该脚本使用必需的参数运行第一个脚本。不知道这是否是最好的方法,但是使用subprocess是我的首选:

import subprocess

for i in range(1030):
    subprocess.run(['python', 'ex_script', 'arg1', str(i)])

请注意,子过程是使用列表[]中的值指定的。这些值在我的Win10环境中有效,但是您可以将其调整为适合您自己的环境。

答案 2 :(得分:1)

只需使用for loops in bash.

for i in {1..1030}
do
    python ex_script.py -d <the first input here> -r $i
done

循环将迭代数字1到1030。然后,您可以将任何命令行指令放入循环中,并使用variable $ i,并将其作为指令的参数传递。

您可以将其放入.sh file中并制成executable using chmod +x

然后从终端将其作为可执行脚本运行。