在Python脚本中运行命令行参数
我有一个程序,可以通过命令行这样运行:
python program.py 100 rfile
我想写一个新的脚本,这样我就可以用一个参数列表,比如[50, 100, 150, 200],连续运行它,而不是只用'100'这个参数。
补充说明:我之所以这样问,是因为我想记录'program.py'在不同参数下的执行情况。
4 个回答
4
你可以使用 Optparse
这个工具让你可以像这样使用你的程序: python yourcode.py --input input.txt --output output.txt
当你有很多命令行参数的时候,这个功能特别好用。
所以在你的情况下,你可以这样做:
parser.add_option("-i","--input", action="store", type="int", nargs=4, dest="mylist")
现在在你的控制台里,你可以输入 python program.py -i 50 100 150 200
为了获取输入的内容,你可以把 mylist 当作一个列表来使用。
6
你可以使用Devrim的方法,或者你可以修改一下你的脚本:
如果你原来的脚本是这样工作的:
import sys
do_something(sys.argv[1], sys.argv[2])
那么你可以这样来实现你想要的效果:
def main(args):
for arg in args[:-1]:
do_something(arg, args[-1])
if __name__ == '__main__':
import sys
main(sys.argv[1:])
你可以这样来调用它:
python program.py 50 100 150 200 rfile
我在猜测你想要的是什么。如果这不是你想要的,请告诉我。
8
如果你创建一个这样的bash文件
#!/bin/bash
for i in 1 2 3 4 5
do
python program.py $i rfile
done
然后对这个文件执行 chmod +x
命令,这样做之后,当你运行这个文件时,它会依次执行里面的内容:
python program.py 1 rfile
python program.py 2 rfile
python program.py 3 rfile
python program.py 4 rfile
python program.py 5 rfile