平台:win10+python 3.7.0

一、sys说明:

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

sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口。

  官方的文档参考:https://docs.python.org/2/library/sys.html

  中文版文档参考:http://xukaizijian.blog.163.com/blog/static/170433119201111625428624/

二、实例说明:

通过实例具体说明:

创建实例一test01.py,如下:

 #conding:utf-8
import sys #导入sys模块
print(sys.argv[0]) # 打印sys.argv的第0个参数 # 来运行一下这个脚本,我们随便给他点参数,1个,2个,3个或更多都行.
#py -3 test01.py a b c d e f
#test01.py
#得出结果就显示当前脚本名,这里我们就可以得出第一个结论.

实例一test01.py

得出结果就显示当前脚本名,这里我们就可以得出第一个结论:sys.argv[0] 返回是的脚本

现在我们修改一下,得到实例二test02.py, 如下:

 #conding:utf-8
import sys #导入sys模块
print(sys.argv[1]) # 打印sys.argv的第1个参数 #执行如下:
#py -3 test02.py a b c d e f
#a

实例二test02.py

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

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

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

sys.argv也支持python字符串中的切片,我们还是先修改代码,测试如下——实例三test03.py、实例四test04.py和实例五test05.py:

 #conding:utf-8
import sys #导入sys模块
print(sys.argv[1:]) # 打印sys.argv的第1个参数及其以后所有参数,返回的值是一个list #结果如下:
#py -3 test03.py a b c d e f
#['a', 'b', 'c', 'd', 'e', 'f']

实例三test03.py

 #conding:utf-8
import sys #导入sys模块
print(sys.argv[1:3]) # 打印sys.argv的第1个参数到第三个参数,不包含第三个参数,返回的值是一个list #结果如下:
#py -3 test04.py a b c d e f
#['a', 'b']

实例四test04.py

 #conding:utf-8
import sys #导入sys模块
print(sys.argv[1:5:2])
print(sys.argv[-1])
print(sys.argv[::-1]) #结果如下:
#py -3 test05.py a b c d e f
# ['a', 'c']
# f
#['f', 'e', 'd', 'c', 'b', 'a', '1234.py']

实例五test05.py

上面示例使用了字符串的切片方法,需要先了解字符串的切片知识:见我另一篇博客。

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

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

三、解决问题:

sys.argv[-1]返回的是调用test**.py后紧跟的所有参数中最后一个,是一个list中的最后一个元素,而这个list是这样的:它是sys模块下的一个全局变量,第一个元素是模块名sys.argv[0]、后面是依次传入的参数sys.argv[1]、sys.argv[2]或sys.argv[-1]、sys.argv[-2]。

Python踩坑之 sys.argv[-1]代表什么的更多相关文章

  1. Python 踩坑之旅进程篇其四一次性踩透 uid euid suid gid egid sgid的坑坑洼洼

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜 ...

  2. Python 踩坑之旅文件系统篇其一文件夹也是个文件

    目录 1.1 案例 1.2 分析 1.3 扩展 1.4 技术关键字 下期预告 代码示例支持 平台: Mac OS Python: 2.7.10 代码示例: - wx: 菜单 - Python踩坑指南代 ...

  3. Python踩坑之旅其一杀不死的Shell子进程

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...

  4. [代码修订版] Python 踩坑之旅进程篇其五打不开的文件

    目录 1.1 踩坑案例 1.2 填坑和分析 1.2.1 从程序优化入手 1.2.2 从资源软硬限入手 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: ...

  5. python踩坑系列之导入包时下划红线及报错“No module named”问题

    python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...

  6. Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 Github: https: ...

  7. [代码修订版] Python 踩坑之旅 [进程篇其四] 踩透 uid euid suid gid egid sgid的坑坑洼洼

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 公 ...

  8. Python踩坑之旅其二裸用os.system的原罪

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 1.5 填坑总结 2. 前坑回顾 2.1 Linux中, 子进程拷贝父进程哪些信息 2.2 Agent常驻进程选择& ...

  9. Python命令行参数sys.argv[]

    学习C语言的时候就没弄明白命令行参数的用法,在学习Pyton 的时候又遇到了命令行参数,在这里稍微学习了一下,稍微明白了一些在这里做个记录方便后面回顾复习. Sys.argv[]是用来获取命令行参数的 ...

随机推荐

  1. 轻松制作X86 OPENWRT USB启动盘

    本文介绍了一个x86 live USBi启动盘的制作方法. 该方法有如下特点: 1.  可在winXP/win 7/win vista上制作, U盘采用fat格式, 即使对于linux经验较少者, 也 ...

  2. DevExpress的42种窗体样式

    在Winform环境下DevExpress标题栏皮肤 第一步:引用DLL文件,安装DevExpress后在引用>程序集>扩展: DevExpress.BonusSkins.v12.2.dl ...

  3. 杂谈2.cpp

    Ostream类定义的插入运算符(<<)使数据插入到输出流,istream定义的抽取运算符(>>)能够从输入流中抽取信息 Cin和cout都是智能对象,能够根据程序上下文将信息 ...

  4. GC(垃圾处理机制)面试题

    1: 详细解释Java中垃圾收集的主要流程.  垃圾收集主要有两种形式:手工.自动 自动会不定期进行回收,以释放无用的空间 手工调用的是System类中的gc()方法,此方法实际上调用的是Runtim ...

  5. SpringBoot 之 thymeleaf

    thymeleaf 的maven 配置我们都知道: <dependency> <groupId>org.springframework.boot</groupId> ...

  6. Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

    今天在测试项目代码时,在idea中配置tomcat7插件运行后一直报如下错误: 解决方案:看了网上大多数办法都是修改xml文件配置,感觉并不适用,最后看到比较靠谱解释如下: pom.xml中jar包发 ...

  7. CSS: Grid homework redact.

    The web homework: Finished design: (I use six block with different color to show this homework and I ...

  8. linux 大容量磁盘分区工具parted

    1. Msdos和Gpt的区别 fdisk  :只能分msdos分区parted :可以分msdos和gpt分区 2. MSDOS特点最大支持2TB卷大小.每个磁盘最多只能有4个主分区(或3个主分区, ...

  9. Java虚拟机 垃圾收集器与内存分配策略

    说起GC,我们要思考的主要有三件事 哪些内存需要回收 那些已经“死去”的对象,那么哪些对象“死”,哪些对象“活”呢,有个简单的办法 引用计数法,但是没法解决循环依赖问题 所以Java虚拟机采用的是可达 ...

  10. java正则积累

    1. [.]点:再分割的时候不可以直接使用点,需要加上 \\ 转义才可以得到想要的结果,否则输出的时候会报异常 数据下标越界 String[] split = "output.txt&quo ...