怎么使用argv

Python08

怎么使用argv,第1张

argv:即所谓的参数变量,这个变量保存着运行Python脚本时传递给Python脚本的参数。

解包:把argv中的东西取出来,将所有的参数依次赋值给左边的变量。

在argv.py文件中输入以下代码:

from sys import argv

script, first, second, third = argv

print("The script is called:", script)

print("Your first variable is:", first)

print("Your second variable is:", second)

print("Your third variable is:", third)

在DOS下运行(Terminal)argv.py文件及返回:

F:\workspace\Python-test\src\test1>python argv.py a b c

The script is called: test.py

Your first variable is: a

Your second variable is: b

Your third variable is: c

注意:这里不是直接运行argv.py文件,而是带了三个参数,否则会报错。这里argv.py本身就是第一个参数,“a”是第二个参数了。

扩展资料:  

argc,argv 用命令行编译程序时有用。

主函数main中变量(int argc,char *argv[ ])的含义

有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++

main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。

* argv[ ]: 指针数组,用来存放指向字符串参数的指针,每一个元素指向一个参数

argv[0] 指向程序运行的全路径名

argv[1] 指向在DOS命令行中执行程序名后的第一个字符串

argv[2] 指向执行程序名后的第二个字符串

...

argv[argc]为NULL。

**env:字符串数组。env[ ]的每一个元素都包含ENVVAR=value形式的字符

串。其中ENVVAR为环境变量,value 为ENVVAR的对应值。

argc, argv,env是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。

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,这里也可以多带几个参数,程序会先后输出参数文件内容。