内容简介:解析命令行选项及参数列表。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自定义模块、插件&资源脚本套件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pro CSS and HTML Design Patterns
Michael Bowers / Apress / April 23, 2007 / $44.99
Design patterns have been used with great success in software programming. They improve productivity, creativity, and efficiency in web design and development, and they reduce code bloat and complexit......一起来看看 《Pro CSS and HTML Design Patterns》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
HEX HSV 转换工具
HEX HSV 互换工具