Python3 中 sys.argv[ ]的用法解释

 sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。

1 #test.py
2 
3 import sys
4 a=sys.argv[0]
5 print(a)

 将test.py保存在c盘的根目录下。

 在程序中找到 ‘运行’->点击->输入"cmd"->回车键   进入控制台命令窗口(如下图),先输入cd c:\   (作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

  得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。

  然后我们将代码中0改为1 :

  a=sys.argv[1]

  保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

 得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

 那我们再把代码修改一下:

 a=sys.argv[2:]

 保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

 test.py a b c d e f

 得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

 

   应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该 将程序保存了,从外部来运行程序并给出参数。

实例:test01.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']

实例:test02.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']

通过如上示例,应该明白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]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值