这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战
在代码的操作过程中,总是会需要操纵命令行传递给程序的参数。于是python中提供了这样一个列表。
在Python中,sys库下有一个名称为argv的列表,该列表中保存了Python脚本运行时所有的命令行参数,也是就你在启动脚本时在 python 命令后面声明的那些参数。其中,在argv列表中的第一个元素就是你执行的命令行程序的名称,比如说 argv_test.py 而在argv列表中除命令行程序的名称外放的其余的参数就是以字符串的形式保存在该列表中的启动参数。下面举一些例子说明一下。
例子就两行代码
import sys
print(sys.argv)
结果:
D:\pyDemo\untitled2\test> python argv_test.py
['argv_test.py']
D:\pyDemo\untitled2\test> python argv_test.py zhangsan 19
['argv_test.py', 'zhangsan', '19']
当然,除了在启动时通过启动参数向argv列表中增加参数外,还可以直接通过sys.argv对象的append方法增加参数,毕竟本质上argv就是一个列表,无论你是在初始化时赋予还是后续增加都是没是可以的。 具体使用的方式如下所示:
import sys
print(sys.argv)
sys.argv.append(45)
print(sys.argv)
结果:
D:\pyDemo\untitled2\test> python argv_test.py
['argv_test.py']
['argv_test.py', 45]
有一点是要说明,本质上你可以将sys.argv理解为一个list对象,你可以通过sys.argv[i] = xxx的方式修改sys.argv指定位置原有的值,它并不是一个不可以修改的对象。在使用的时候记得你是否进行过这样的骚操作。
通过 sys.argv 这个列表你就可以完成所有的参数的操作了,无论是获取还是添加,亦或是修改。
为什么使用sys.argv?
为了增加你的脚本的灵活性,你需要让一些变量在启动时可以被赋予指定的值,以期望程序执行不同的逻辑,毕竟你不可能只因为一个变量的初始值不同就将其写成两个启动脚本,这是没有必要的,甚至说是错误的。你要让你的脚本更加灵活,通过不同的参数输入来实现不同的逻辑,仅仅用一个脚本。类比的话,你可以思考一下你所使用的其他命令,比如python、git等等。
青冥有晓月