Python中的命令行和变量参数?
命令行参数
命令行参数是输入参数,使用户能够使程序以某种方式起作用,例如输出附加信息,或从指定的源读取数据或以所需格式解释数据。
Python命令行参数
Python提供了许多读取命令行参数的选项。最常见的方法是-
Pythonsys.argv
Pythongetopt模块
Pythonargparse模块
Pythonsys模块
sys模块将命令行参数(CLA)存储到列表中,并使用sys.argv进行检索。这是一种将命令行参数读取为字符串的简单方法。
import sys print(type(sys.argv)) print('The command line arguments are: ') for i in sys.argv: print(i)
在上述程序之上运行,我们的输出将类似于:
输出结果
>python CommandLineOption.py H E L L O <class 'list'> The command line arguments are: CommandLineOption.py H E L L O
Pythongetopt模块
pythongetopt模块解析sys.argv之类的参数序列,并返回选项和参数对的序列以及非选项参数的序列。
语法
getopt.getopt(args, options, [long_options])
哪里:
Args–要解析的参数列表
选项–这是脚本要识别的选项字母的字符串。
Long_options–这是一个可选参数,是包含long选项名称的字符串的列表,应该支持。
getopt模块选项语法包括-
-一种
-bval
-b值
--noarg
--witharg=val
--withargval
让我们通过示例了解getopt模块-
短格式选项
下面的程序有两个选项-a和-b,第二个选项需要一个参数。
import getopt print (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))
结果
([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])
长格式选项
该程序有两个选项–noarg和–witharg,序列应为['noarg','witharg=']
import getopt print (getopt.getopt([ '--noarg', '--witharg', 'val', '--witharg2=another' ],'',[ 'noarg', 'witharg=', 'witharg2=' ]))
结果
([('--noarg', ''), ('--witharg', 'val'), ('--witharg2', 'another')], [])
另一个演示geopt模块用法的示例-
import getopt import sys argv = sys.argv[1:] try: opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file=']) print(opts) print(args) except getopt.GetoptError: print('Something Wrong!') sys.exit(2)
结果
>python CommandLineOption.py -m 2 -h "Help" H E L L O [('-m', '2'), ('-h', '')] ['Help', 'H', 'E', 'L', 'L', 'O']
Pythonargparse模块
Pythonargparse模块是解析命令行参数的首选方法。该模块提供了多个选项,例如位置参数,参数的默认值,帮助消息,指定参数的数据类型等。
以下是了解argparse模块的简单程序-
import argparse parser = argparse.ArgumentParser() parser.add_argument("string", help="Print the word in upper case letters") args = parser.parse_args() print(args.string.upper()) # This way argument can be manipulated.
输出结果
>python CommandLineOption.py "Hello, pythoN" HELLO, PYTHON
我们可以使用argparse模块(如–verbosity)设置可选参数。