当前位置: 代码迷 >> 综合 >> python入门系列(21): python的sys.argv[]用法
  详细解决方案

python入门系列(21): python的sys.argv[]用法

热度:78   发布时间:2023-12-19 04:15:31.0

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() 默认使用的简单类,可创建一个存放属性的对象并将其返回。


参考:

  1. sys.argv[]用法