我有一个已解析为linux命令行的python程序。它需要两个输入。第一个输入将始终是相同的,并且我希望第二个输入在1-1030之间的任何地方。是否有办法让python在命令行中自动运行它,并且每次将第二个输入增加+1?我想这样做,所以我不必手动输入第二个输入1030次。
我的命令行如下所示:
$ python ex_script.py -d (first input) -r (second input)
答案 0 :(得分:1)
从命令行获取输入有多种可能性
import sys
和sys.argv[n]
将为您提供第n个命令行输入的字符串。为避免第二个参数,一个非常简单的解决方法是将一个计数器写入文件,并使您的程序读取该文件中的数字,将其增加一个以覆盖该文件。您也可以在程序中检查该数字是否小于1030。
答案 1 :(得分:1)
我将编写一个简短的第二个脚本,该脚本使用必需的参数运行第一个脚本。不知道这是否是最好的方法,但是使用subprocess
是我的首选:
import subprocess
for i in range(1030):
subprocess.run(['python', 'ex_script', 'arg1', str(i)])
请注意,子过程是使用列表[]中的值指定的。这些值在我的Win10环境中有效,但是您可以将其调整为适合您自己的环境。
答案 2 :(得分:1)
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
。
然后从终端将其作为可执行脚本运行。