Python踩坑之 sys.argv[-1]代表什么
平台: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]代表什么的更多相关文章
- Python 踩坑之旅进程篇其四一次性踩透 uid euid suid gid egid sgid的坑坑洼洼
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜 ...
- Python 踩坑之旅文件系统篇其一文件夹也是个文件
目录 1.1 案例 1.2 分析 1.3 扩展 1.4 技术关键字 下期预告 代码示例支持 平台: Mac OS Python: 2.7.10 代码示例: - wx: 菜单 - Python踩坑指南代 ...
- Python踩坑之旅其一杀不死的Shell子进程
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...
- [代码修订版] Python 踩坑之旅进程篇其五打不开的文件
目录 1.1 踩坑案例 1.2 填坑和分析 1.2.1 从程序优化入手 1.2.2 从资源软硬限入手 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: ...
- python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...
- Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 Github: https: ...
- [代码修订版] Python 踩坑之旅 [进程篇其四] 踩透 uid euid suid gid egid sgid的坑坑洼洼
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 公 ...
- Python踩坑之旅其二裸用os.system的原罪
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 1.5 填坑总结 2. 前坑回顾 2.1 Linux中, 子进程拷贝父进程哪些信息 2.2 Agent常驻进程选择& ...
- Python命令行参数sys.argv[]
学习C语言的时候就没弄明白命令行参数的用法,在学习Pyton 的时候又遇到了命令行参数,在这里稍微学习了一下,稍微明白了一些在这里做个记录方便后面回顾复习. Sys.argv[]是用来获取命令行参数的 ...
随机推荐
- public class PageRender implements ResponseRender
package cn.ubibi.jettyboot.demotest.controller.render; import cn.ubibi.jettyboot.framework.commons.S ...
- MySQL SQL审核平台 inception+archer2.0(亲测)
docker run -d --privileged -v `pwd`/archer_data:/data -p 9306:3306 --name archer --hostname archer - ...
- 高性能mysql 第六章查询性能优化 总结(上)查询的执行过程
6 查询性能优化 6.1为什么查询会变慢 这里说明了的查询执行周期,从客户端到服务器端,服务器端解析,优化器生成执行计划,执行(可以细分,大体过程可以通过show profile查看),从服务器端返 ...
- C#将对象序列化成JSON字符串
C#将对象序列化成JSON字符串 public string GetJsonString() { List<Product> products = new List<Product& ...
- lecune入门示例
注意:本示例中的lucene版本需在jdk7以上使用. 一.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" ...
- sqlserver to oracle
SELECT c.*, d .Organization_Name, d .ParentId, e.Roles_ID, e.Roles_Name FROM ( SELECT a.*, b.Organiz ...
- win7+win10系统使用日常经验集锦
请保留此份 Cmd Markdown 的欢迎稿兼使用说明, 当然你也可以使用彩色字体. 或者使用小体字. 或者使用大体字. 如需撰写新稿件,点击顶部工具栏右侧的 新文稿 或者使用快捷键 Ctrl+Al ...
- GDI+_Png图片浏览器
'昨天看见有人问VB6支不支持PNG,刚好我正在研究GDI+,于是做了这个演示程序.'演示下载地址:百度网盘|'下面为设计界面和运行效果截图 ' 千万别喷界面丑. /无奈 .
- 自然语言处理的CNN模型中几种常见的池化方法
自然语言处理的CNN模型中几种常见的池化方法 本文是在[1]的基础上进行的二次归纳. 0x00 池化(pooling)的作用 首先,回顾一下NLP中基本的CNN模型的卷积和池化的大致原理[2].f ...
- TXLSReadWriteII5 单元格读写
unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...