内容简介:解析命令行选项及参数列表。args:要解析的参数列表,但不包括当前执行的python脚本名称,一般等同于
getopt
模块用于解析脚本参数。
getopt.getopt(args, shortopts, longopts=[])
解析命令行选项及参数列表。
args:要解析的参数列表,但不包括当前执行的 python 脚本名称,一般等同于 sys.argv[1:]
。
shortopts:要识别的短选项字符串,如果后接 :
表示需要给定参数。如 ab:c:
,表示识别 -a
, -b
和 -c
的短选项,其中 -b
和 -c
需要后接参数。如果不需要短选项,可以设置为空字符串。
longopts:要识别的长选项列表(不包括 --
前缀),长选项参数如果后接 =
表示需要给定参数。如 ["help", "user=", "password="]
,表示识别 --help
, --user=root
, --password=123456
的长选项。
函数返回值由两个元素组成。第一个是 (option, value)
元组的列表,第二个是args剥离短选项及其参数和长选项及其参数之后剩余的参数列表。 (option, value)
元组中的option表示包含 -
或 --
前缀的选项,value表示该option对应的参数,可以为空字符串表示无参数。
import getopt # 模拟向 MySQL 的test库导入tb_country.sql的命令行 args = "-uroot -p --host=127.0.0.1 --port=3306 --verbose -Dtest < tb_country.sql".split() options, arg = getopt.getopt(args, "u:pD:", ["host=", "port=", "verbose"]) print(arg) # ['<', 'tb_country.sql'] for option in options: print(option) # ('-u', 'root') # ('-p', '') # ('--host', '127.0.0.1') # ('--port', '3306') # ('--verbose', '') # ('-D', 'test')
一旦遇到非选项参数,将停止选项解析,从该非选项参数开始的所有参数全部视为返回值中的第二个元素
import getopt args = "-a root 123456 -b --opt1 --opt2".split() options, arg = getopt.getopt(args, "ab", ["opt1", "opt2"]) print(arg) # ['root', '123456', '-b', '--opt1', '--opt2'] print(options) # [('-a', '')]
getopt.gnu_getopt(args, shortopts, longopts=[])
和 getopt()
类似,但默认使用GNU风格的选项解析模式,这意味着选项参数和非选项参数可以混合,而 getopt()
会在遇到第一个非选项参数时停止解析。
如果shortopts的首字符为 +
,或者设置了环境变量 POSIXLY_CORRECT
,同样会在遇到第一个非选项参数时停止解析。
exception getopt.GetoptError
getopt.error
异常的别名。以下几种情况将抛出此异常: a)
参数列表中存在不能识别的选项 b)
或者某个需要传值的选项没有给定值 c)
传递了值给不需要参数的长选项。
属性 msg
和 opt
分别表示错误信息和相关选项,opt可能为空字符串。
以上所述就是小编给大家介绍的《python模块之getopt(脚本参数解析)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 数字绘画软件 Krita 4.1.0 脚本模块可用 Python 2 编译
- 【Flutter】如何写一个Flutter自动打包成iOS代码模块的脚本
- [译] 在 Google Apps 脚本中使用 ES6 和 npm 模块
- FLARE脚本系列:使用idawasm IDA Pro插件逆向WebAssembly(Wasm)模块
- Gradle 6.4 RC4 发布,带来 Java 模块、Groovy DSL 脚本插件
- Mad-Metasploit:一款多功能Metasploit自定义模块、插件&资源脚本套件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
URL 编码/解码
URL 编码/解码
RGB CMYK 转换工具
RGB CMYK 互转工具