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

举几个小例子就明白了.

创建一个脚本,内容如下

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的sys.argv使用说明的更多相关文章

  1. Python的sys.argv使用说明 通过终端写入环境变量

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

  2. Python中 sys.argv[]的用法

    Python中 sys.argv[]的用法 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上 ...

  3. 31 Python中 sys.argv[]的用法简明解释(转)

    Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...

  4. python argparse sys.argv

    python argparse sys.argv class WeiLearningArgumentParser(argparse.ArgumentParser): def __init__(self ...

  5. python关于sys.argv列表的应用场景

    python关于sys.argv列表的应用场景 1.需求很简单: 使用 sys.argv 获取命令行参数(即要判断的文件名),然后判断文件是否存在,文件存在再进一步判断是否有读权限 2.分析: (1) ...

  6. Python中 sys.argv的用法简明解释

    Python中 sys.argv[]的用法简明解释 sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得 ...

  7. 9.python中sys.argv[]用法说明

    在python中sys.argv[]是用来获取命令行输入的参数的(参数和参数之间空格区分),sys.argv[0]表示代码本身文件路径,所以从参数1开始,表示获取的参数了 举例说明:创建一个程序名为t ...

  8. 【python】sys.argv[]的用法

    在学python的过程中,一直弄不明白sys.argv[]的意思,虽知道是表示命令行参数,但还是有些稀里糊涂的感觉. 今天又好好学习了一把,总算是大彻大悟了. Sys.argv[]是用来获取命令行参数 ...

  9. python中sys.argv[]的使用

    sys.argv[]主要用于程序从外部获取参数.其参数个数可以是多个,组建成一个列表(list). 几个简单示例如下: fun_test.py: #!/usr/bin/env python # -*- ...

随机推荐

  1. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM

    A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技 ...

  2. OpenID Connect Core 1.0(四)使用授权码流验证(上)

    3.1 使用授权码流验证(Authentication using the Authorization Code Flow) 本节描述如何使用授权码流执行验证.当使用授权码流时,会从令牌终结点返回的所 ...

  3. Java 8-接口的默认方法和静态方法

    Java 8-接口的默认方法和静态方法 Java 8使用两个新概念扩展了接口的含义:默认方法和静态方法.默认方法使得接口有点类似traits,不过要实现的目标不一样.默认方法使得开发者可以在 不破坏二 ...

  4. C/S模式,发布/订阅模式和PUSH/PULL模式(上)

    CS模式(客户端/服务器模式) 最场景的信息传递模式,也称为Request/Response模式,或者调用模式.http/https协议即此模式.因为最常用所以大家一般都比较熟悉,这里不重点讲了,大家 ...

  5. Java面向对象的三个特征

    首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...

  6. ajax与websocket的区别以及websocket常用使用方式

    笔者近期在公司的项目中渐渐的接触了一些比较高级的业务逻辑处理,其中比较有意思的地方就是前端接受后台给与的推送问题. 一般前端与后端的交互主要是使用ajax进行异步操作调用交互,比较有趣的是这种交互方式 ...

  7. Linux系统Java环境配置

    1.卸载Linux系统自带的JDK java -version rpm -qa | grep -i java 我们要删除掉自带的JDK环境 rpm -e --nodeps java-1.6.0-ope ...

  8. select 宽度跟随option内容自适应

    传统的select在没有设置固定宽度的情况,会因为自身的 option 选项的里,宽度最宽的option作为select本身的宽度 例如 可见效果为: select的宽度因为"宽度最宽的op ...

  9. Vue使用moment.js处理前端时间格式问题

    使用moment.js处理格式显示问题: 1.首先引入moment.js插件 npm install moment --save 2.入口文件main.js中导入并使用 3.在项目中使用即可:data ...

  10. 经典傅里叶算法小集合 附完整c代码

    前面写过关于傅里叶算法的应用例子. <基于傅里叶变换的音频重采样算法 (附完整c代码)> 当然也就是举个例子,主要是学习傅里叶变换. 这个重采样思路还有点瑕疵, 稍微改一下,就可以支持多通 ...