zoukankan      html  css  js  c++  java
  • 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,如下:

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

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

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

    1 #conding:utf-8
    2 import sys #导入sys模块
    3 print(sys.argv[1]) # 打印sys.argv的第1个参数
    4 
    5 #执行如下:
    6 #py -3 test02.py a b c d e f 
    7 #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

    1 #conding:utf-8
    2 import sys #导入sys模块
    3 print(sys.argv[1:]) # 打印sys.argv的第1个参数及其以后所有参数,返回的值是一个list
    4 
    5 #结果如下:
    6 #py -3 test03.py a b c d e f 
    7 #['a', 'b', 'c', 'd', 'e', 'f']
    实例三test03.py
    1 #conding:utf-8
    2 import sys #导入sys模块
    3 print(sys.argv[1:3]) # 打印sys.argv的第1个参数到第三个参数,不包含第三个参数,返回的值是一个list
    4 
    5 #结果如下:
    6 #py -3 test04.py a b c d e f 
    7 #['a', 'b']
    实例四test04.py
     1 #conding:utf-8
     2 import sys #导入sys模块
     3 print(sys.argv[1:5:2])
     4 print(sys.argv[-1])
     5 print(sys.argv[::-1])
     6 
     7 #结果如下:
     8 #py -3 test05.py a b c d e f 
     9 # ['a', 'c']
    10 # f
    11 #['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]。

  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/Alliswell-WP/p/Python_sys-argv.html
Copyright © 2011-2022 走看看