sys.argv的意义[转]

Posted liuzz07

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sys.argv的意义[转]相关的知识,希望对你有一定的参考价值。

sys.argv的意义

简单来说,sys.argv是一个参数列表,这个列表存放着从外界获取到的参数(可能有多个)

下面以一个例子来详细阐述sys.argv,本次演示在ubuntu环境下运行

新建一个test.py,写入以下代码

test.py

import sys
lst = sys.argv
print(lst)


在命令行使用python解释器运行test.py
python3 test.py    # 注意此命令要在test.py所在的目录下运行

运行结果

[\'test.py\']

可以看到sys.argv里面只有一个元素,是当前文件的文件名


下面我们在运行test.py时传入一个参数,观察sys.argv的变化

python3 test.py 2

运行结果

[\'test.py\', \'2\']


传入多个参数时 ``` python3 test.py 2 "hello" # 注意参数是以空格分割

运行结果

[\'test.py\', \'2\', \'hello\']

<br>
改变当前工作目录,切换到上级目录tmp
```linux
cd ..

再次运行test.py

python3 tmp/test.py 2 "hello" "world"

运行结果

[\'tmp/test.py\', \'2\', \'hello\', \'world\']

可以看到sys.argv的第一个元素是执行的py文件相对于当前工作目录的路径

sys.argv的使用

工作中我们可能会遇到这样一种情况,需要在命令行执行py文件,同时也需要传入参数,这时候sys.argv就派上用场了,sys.argv维护着一个参数列表,从外界传入的参数都记录在这个列表里,从而就可以在py文件里使用这些参数

修改test.py文件
test.py

import sys
lst = sys.argv
print(lst)

def func():
    a = int(sys.argv[1])
    b = int(sys.argv[2])
    return a**b


print("result of func:",func())

运行结果

[\'test.py\', \'2\', \'3\']
result of func: 8


## 小结 简而言之,sys.argv是一个参数列表,第一个元素是执行的py文件相对于当前工作目录的路径,后面的元素都是外界传入的参数,在py文件里可以使用`sys.argv[index]`的方式获取这些参数

以上是关于sys.argv的意义[转]的主要内容,如果未能解决你的问题,请参考以下文章

python 开始就判断len(sys.argv)==4想问下意义!

[转]获取当前执行主脚本的方法

sys.argv[]

python sys.argv的用法

python sys.argv的用法

python sys.argv用法