首页 > 技术文章 > sys.argv用法简介

suguangti 2020-03-04 19:07 原文

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文件的文件名(包含扩展名)

 

推荐阅读