在python中sys.argv[1:]是什么?

Python019

在python中sys.argv[1:]是什么?,第1张

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

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

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

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

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

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

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

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

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

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

test.py a b c d e f

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

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

这个例子是简明python教程上的,明白它之后你就明白sys.argv[]了。

保存程序为sample.py.我们验证一下:

1)命令行带参数运行:sample.py _version  输出结果为:version 1.2

2)命令行带参数运行:sample.py _help  输出结果为:This program prints files??

3)在与sample.py同一目录下,新建a.txt的记事本文件,内容为:test argv;命令行带参数运行:sample.py a.txt,输出结果为a.txt文件内容:test argv,这里也可以多带几个参数,程序会先后输出参数文件内容。

sys.argv就是保存命令行参数的变量,通过它你可以获取到命令行中传入的参数,从而执行不同的条件分支。或者不同的功能。

python的optparse标准模块就是居于sys.argv实现的,写命令行工具的时候非常有用。

如果解决了您的问题请采纳!

如果未解决请继续追问