十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有些时候我们需要通过命令行将参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt()。python也提供了比getopt()更简洁的argparse方法。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍。
创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,郑州服务器托管,海外高防服务器,大带宽服务器,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
sys.argv是传入的参数列表,sys.argv[0]是当前python脚本的名称,sys.argv[1]表示第一个参数,以此类推。
命令行运行:
可以看到传入的参数通过sys.argv来获取,它就是一个参数列表。
python的getopt与C语言的的getopt()函数类似。相比于sys模块,支持长参数和短参数,并对参数解析赋值。但它需要结合sys模块进行参数解析,语法格式如下:
短参数为单个英文字母,如果必须赋值需要在后面加英文冒号( : ),长参数一般为字符串(相比短参数,更能说明参数含义),如果必须赋值需要在后面加等号( = )。
命令行运行:
注意:短参数(options)和长参数(long_options)不需要一一对应,可以任意顺序,也可以只有短参数或者只有长参数。
argparse模块提供了很多可以设置的参数,例如参数的默认值,帮助消息,参数的数据类型等。argparse类主要包括ArgumentParser、add_argument和parse_args三个方法。
下面介绍这三个函数的使用方法。
argparse默认提供了 -h | --help 参数:
命令行运行:
下面列出部分参数:
下面来添加参数:
命令行运行:
parse_args() 方法用于解析参数,在前面的示例代码中使用parse_args方法来提取参数值,对于无效或者错误的参数会打印错误信息和帮助信息:
命令行运行:
本文介绍了Python的三种命令行参数解析方法sys.argv、getopt和argparse,可以根据自己的需要进行选择,getopt和argparse两种方法相比来说,建议选择argparse,代码量更少更简洁。更详细的使用方法参考官方文档:
--THE END--
print("我是python小白")
终端输出:我是python 。
此种写法只用于了解print函数的作用,在程序中要输出某个内容,一般采用变量的形式,即:
my="小白"
print("我是python%s。" % my)
终端输出:我是python小白。
此处my为变量,小白是被赋值给变量my,并不是my等于变量。定义变量的好处是一个程序可以无限次数的使用它。定义变量还可以为:
a=b=c=2 #2同时赋值给a b c三个变量
a,b c=1,2,3 #a=1 b=2 c=3
注意:变量名区分大小写,不能以数字开头。
name,age,weight="小白",18,65.5
stuid=1
print("我的名字是%s,我的年龄是%d,我的体重是%f公斤,我和学号是%d" % (name,age,weight,stuid))
终端输出:我的名字是小白,我的年龄是18岁,我的体重是65.500000公斤,我的学号是1
print("我的名字是%s,我的年龄是%d岁,我的体重是%.2f公斤,我的学号是%03d" %(name,age,weight,stuid))
终端输出:我的名字是小白,我的年龄是18岁,我的体重是65.50公斤,我的学号是001
printt(f"我的名字是{name},我明年的年龄是{age 1}岁,我的体重是{weight}公斤,我的学号是00{stuid}")
#此种写法为最常用的。
终端输出:我的名字是小白,我明年的年龄是19岁,我的体重是65.5公斤,我的学号是001
%d 为整数型函数值 %03d表示以3位整数显示,不足的以0替代,超出的原样显示。
%f为小数型函数值%.2f表示只显示小数点后两位
%s为字符型函数值 字符串应以双引或单引号括起。
1. Int()整数
2. Float()浮点数
3. Str()字符串
4. Ord()返回对应的ASCII值或Unicode值
5. Chr()通过ASCII返回对应的值
6. Bool()布尔运算
7. bin()转换为二进制
8. hex()转换为十六进制
9. oct()转换为八进制
10. list()将元组转换为列表
11. tuple()转换为元组
12. dict()创建字典
13. bytes()转换为字节