Python中处理命令行参数(args)的三种常用方法,分别是sys.argv、argparse和getopt。
1. sys.argv
sys.argv是Python自带的模块,可以用来获取命令行参数,它是一个列表,包含脚本名称和参数,例如:
$ python test.py arg1 arg2 import sys print(sys.argv) ['test.py', 'arg1', 'arg2']
sys.argv模块可以很方便的获取命令行参数,但是它没有提供参数类型的检查,也没有提供参数的解析功能,只能获取参数的值,如果要更加细致的处理参数,就需要使用其他的模块了。
2. argparse
argparse是Python标准库中提供的一个用于解析命令行参数的模块,它可以解析出参数的名称、参数的类型、参数的值等信息,例如:
$ python test.py -f filename -n 10 import argparse parser = argparse.ArgumentParser() parser.add_argument('-f', type=str, help='filename') parser.add_argument('-n', type=int, help='number') args = parser.parse_args() print(args.f, args.n) filename 10
argparse模块可以提供更加细致的参数解析功能,它可以检查参数的类型,也可以提供帮助信息,但是它不能处理短参数形式,如果要处理短参数形式,就需要使用getopt模块。
3. getopt
getopt是Python标准库中提供的一个用于处理短参数形式的模块,它可以解析出短参数的名称和值,例如:
$ python test.py -f filename -n 10 import getopt opts, args = getopt.getopt(sys.argv[1:], 'f:n:') for opt, arg in opts: if opt == '-f': filename = arg elif opt == '-n': number = int(arg) print(filename, number) filename 10
getopt模块可以处理短参数形式,它可以解析出参数的名称和值,但是它不能检查参数的类型,也不提供帮助信息,如果要更加细致的处理参数,就需要使用argparse模块。
以上就是Python中处理命令行参数(args)的三种常用方法,它们各有优缺点,可以根据实际需求选择合适的方法来处理参数。