欢迎访问宙启技术站
智能推送

Python中parse_args()函数的多种用法及示例代码

发布时间:2023-12-11 07:23:01

在Python中,argparse模块是一个用于解析命令行参数和选项的工具库。argparse模块提供了一个parse_args()函数,用于解析命令行参数,并生成一个由这些命令行参数组成的命名空间或简单的对象。

parse_args()函数有以下几种用法:

1. 最简单的用法是直接调用parse_args()函数,它会解析sys.argv中的命令行参数。示例代码如下:

import argparse

parser = argparse.ArgumentParser()
args = parser.parse_args()

print(args)

运行上述代码时,在命令行中输入python script.py,将会得到一个空的命名空间对象。

2. parse_args()函数可以接受一个字符串列表作为参数,而不是默认的sys.argv。示例代码如下:

import argparse

parser = argparse.ArgumentParser()
args = parser.parse_args(['--foo', 'bar'])

print(args)

运行上述代码时,将会得到一个包含一个foo属性的命名空间对象,并且其值为'bar'

3. 另一种常见的用法是将一段命令行参数的字符串作为参数传递给parse_args()函数。示例代码如下:

import argparse

parser = argparse.ArgumentParser()
args = parser.parse_args('--foo bar'.split())

print(args)

运行上述代码时,将会得到一个包含一个foo属性的命名空间对象,并且其值为'bar'

4. parse_args()函数还可以接受一个可迭代对象作为参数。示例代码如下:

import argparse

parser = argparse.ArgumentParser()
args = parser.parse_args(iter(['--foo', 'bar']))

print(args)

运行上述代码时,将会得到一个包含一个foo属性的命名空间对象,并且其值为'bar'

总的来说,parse_args()函数提供了多种用法来解析命令行参数。可以直接调用parse_args()函数,也可以传递一个字符串列表、命令行参数字符串或可迭代对象。根据不同的用法,parse_args()函数将会返回一个命名空间对象或简单的对象,用于访问解析后的命令行参数。根据参数的不同,命名空间对象中的属性也会有所不同。

下面是一个完整的示例代码,演示parse_args()函数的多种用法:

import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--foo')
    parser.add_argument('--bar', nargs='+')
    parser.add_argument('--baz', type=int)
    args = parser.parse_args()
    
    print(args)

if __name__ == '__main__':
    main()

在命令行中输入python script.py --foo hello --bar world --baz 42,将会得到以下输出:

Namespace(bar=['world'], baz=42, foo='hello')

从上述输出中可以看到,根据参数的不同,命名空间对象中的属性也有所不同。