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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 开始就判断len(sys.argv)==4想问下意义!相关的知识,希望对你有一定的参考价值。

sys.argv[0]是代表当前所执行的脚本
sys.argv[1] 脚本第一个参数
所以len(sys.argv)==4 代表当前脚本含有3个参数。
若执行命令为python hello.py "111"

则len(sys.argv)==2,hello.py也是其中的一个参数
参考技术A sys.argv 表示命令行参数,
这个判断,是判断启动时是不是提供了4个参数,并进行相应处理,
比如执行下面2行,分别是1个参数和2个参数:
python hello.py "111"

python hello.py "111" "222"本回答被提问者和网友采纳

Python的sys.argv使用说明

刚开始使用这个参数的时候,很不明白其含义.网上搜索很多都是贴的官网上面的一则实例,说看懂,就明白.可是,我看不懂.现在在回头看这个参数使用,并不是很麻烦.

举几个小例子就明白了.

创建一个脚本,内容如下

1  #conding:utf-8
2  import sys #导入sys模块
3  print(sys.argv[0]) # 打印sys.argv的第0个参数

来运行一下这个脚本,我们随便给他点参数,1个,2个,3个或更多都行.

1 $ python3.6 1234.py a b c d e f 
2 1234.py

得出结果就显示当前脚本名,这里我们就可以得出第一个结论.

sys.argv[0] 返回是的脚本

现在我们修改一下脚本, 内容如下

1 #conding:utf-8
2 import sys #导入sys模块
3 print(sys.argv[1]) # 打印sys.argv的第1个参数

执行如下

1 $ python3.6 1234.py a b c d e f 
2 a

得出结果就是第一个参数的值.通过这样类推,我们就是知道sys.argv参数的效果了.

返回脚本本身的名字及给定脚本的参数.

了解shell脚本编程的可以这样理解这些参数,sys.argv[0] 就是shell 脚本中的basename ,而sys.argv[1]....就是shell中的$1,$2.....

sys.argv也支持python字符串中的切片,我们还是先修改代码

示例1:

1 #conding:utf-8
2 import sys #导入sys模块
3 print(sys.argv[1:]) # 打印sys.argv的第1个参数及其以后所有参数,返回的值是一个list

结果如下:

$ python3.6 1234.py a b c d e f 
[a, b, c, d, e, f]

示例2:

1 #conding:utf-8
2 import sys #导入sys模块
3 print(sys.argv[1:3]) # 打印sys.argv的第1个参数到第三个参数,不包含第三个参数,返回的值是一个list

结果如下:

1 $ python3.6 1234.py a b c d e f 
2 [a, b]

示例3:

#conding:utf-8
import sys #导入sys模块
print(sys.argv[1:5:2])
print(sys.argv[-1])
print(sys.argv[::-1])

结果如下

1 $ python3.6 1234.py a b c d e f 
2 [a, c]
3 f
4 [f, e, d, c, b, a, 1234.py]

上面示例使用了字符串的切片方法,需要先了解字符串的切片知识.

通过如上示例,应该明白sys.argv的使用和暂时的结果.

sys.argv就是将程序本身和给程序参数返回一个list,这个list中的索引为0的就是程序本身.因此里面的给sys.argv的参数就是list索引.

这个函数是我们写python脚本中最常用的一个函数.

 

以上是关于python 开始就判断len(sys.argv)==4想问下意义!的主要内容,如果未能解决你的问题,请参考以下文章

Python 判断文件是否存在和权限

Python中sys模块sys.argv取值并判断

python:sys.argv[]用法

nodejs怎么调用python命令行

Python3.x:sys.argv[]的简介

Python3 命令行参数