Python3中的sys自带模块中有个argv的方法,这个方法其实作用很简单
主要用在通过python执行xxx.py文件时获取其携带的参数列表。
用一个例子来介绍或许更简单明了吧:
创建一个argv_test.py文件:
# _*_ coding: utf-8 _*_ # @File : argv_test.py import sys message = sys.argv print(type(message)) print("sys.argv => %s" % message) 如果直接执行该文件: 结果为: <class 'list'> sys.argv => ['G:/Project Files/Rabbit MQ/argv_test.py']
可以看出sys.argv的值是一个list列表,由于我们是直接执行结果,并没有在运行这个py文件传参,所以这个列表就是字符串'G:/Project Files/Rabbit MQ/argv_test.py'
既然是列表我们取索引试试:
import sys message = sys.argv[0] print("sys.argv => %s" % message) 结果: sys.argv => G:/Project Files/Rabbit MQ/argv_test.py如果取索引1的话,报错提示 list index out of range。
也就是sys.argv取索引0,就是取得该py文件的绝对路径字符串
当然sys.argv的用途应该是要得到执行文件时候的参数的,所以我们打开cmd,找到该文件位置,使用python3执行一下该文件,同时携带参数
# @File : argv_test.py import sys message1 = sys.argv[0] message2 = sys.argv[1] message3 = sys.argv[2:] print("sys.argv[0] => %s" % message1) print("sys.argv[1] => %s" % message2) print("sys.argv[2:] => %s" % message3)
# cmd执行py文件:G:\Project Files\Rabbit MQ >> python3 argv_test.py param1 param2 param3 param4 param5 sys.argv[0] => argv_test.py sys.argv[1] => param1 sys.argv[2:] => ['param2', 'param3', 'param4', 'param5']
不知道大家发现一个问题没有?
py文件自执行:sys.argv[0] = 此py文件的绝对路径
使用cmd或者脚本执行py文件:sys.argv[0] = 该py文件的文件名(包含扩展名)
来源:https://www.cnblogs.com/suguangti/p/12411494.html