1. sys.argv
import sys,os
os.system(sys.argv[1])
对于命令行运行python代码时,比如
def test(n):print("n",n)
if __name__ == "__main__":n = sys.argv[1]test(n)
命令行运行:
python test.py 10
就把10
传递给test函数的n
。值得注意的是,argv[0]
是文件名,这里是test.py
2. argparser
argparse — 命令行选项、参数和子命令解析器
示例:
import argparseparser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',const=sum, default=max,help='sum the integers (default: find the max)')args = parser.parse_args()
print(args.accumulate(args.integers))
假设上面的 Python 代码保存在名为 prog.py 的文件中,它可以在命令行运行并提供有用的帮助消息:
$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]Process some integers.positional arguments:N an integer for the accumulatoroptional arguments:-h, --help show this help message and exit--sum sum the integers (default: find the max)
parse_args() 方法
ArgumentParser.parse_args(args=None, namespace=None)
将参数字符串转换为对象并将其设为命名空间的属性。 返回带有成员的命名空间。
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-x')
parser.add_argument('--foo')
parser.parse_args(['--foo', 'FOO'])
Namespace(foo='FOO', x=None)
argparse.Namespace
由 parse_args() 默认使用的简单类,可创建一个存放属性的对象并将其返回。
参考:
- sys.argv[]用法