python中argv变量的问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中argv变量的问题。相关的知识,希望对你有一定的参考价值。
我在练习python语言中遇到的一些问题:
程序1:from sys import argv
first = argv
print "You want to search with tabel:", first
打印1:命令行输入:python test2.py first
You want to search with tabel:[‘test2.py’, ‘first’ ]
程序2: from sys import argv
script, first = argv
print "You want to search with tabel:", first
打印3:命令行输入:python test2.py first
You want to search with tabel: first
我只想打印出You want to search with tabel: first(即打印2),为什么程序1不能实现我想要的功能?为什么一定要将script赋值于argv?请详细说明一下。
谢谢。关于“注意这种用法当且仅当argv的长度为2时才成立,如果多加一个命令行参数就会出错。”这句话还是不太理解。
我写了一个程序如下:
程序3:
from sys import argv
script, first, second, third = argv
print "You want to search with tabel:", first
print "You want to search with tabel:", second
print "You want to search with tabel:", third
打印3:命令行输入:python test2.py a b c
You want to search with tabel: a
You want to search with tabel: b
You want to search with tabel: c
似乎并没有出错。
谢谢你的耐心解答。
这个是无数前人踩过的坑了,可以试一下。
from sys import argvscript,first,second,third=argv
print('the script is called:',script)
print(argv[0])
print(argv[1])
print(argv[2])
print(argv[3])
在DOS下运行(Terminal)和返回:
(venv) C:\\Users\\JeffersLi\\PycharmProjects\\untitled>python try01.py 张三 李四 王五
the script is called: try01.py
try040.py
张三
李四
王五
以下是另一个著名的小白坑。
from sys import argvscript,user_name = argv
prompt = '>'
print("My name is %s, and you know I am the %s script." % (user_name, script))
print(argv[0])
print(argv[1])
第二行的意思是告诉电脑,这两货script和user_name都是参数。
然后要去命令行去运行“python try040.py 张三”(Terminal或DOS下都行),而不是直接运行,否则会报错。
(venv) C:\\Users\\JeffersLi\\PycharmProjects\\untitled>python try040.py 张三
My name is 张三, and you know I am the try040.py script.
try040.py
张三
因为try01.py本身就是第一个参数了,“张三”才是第二个参数。
参考技术A 通过程序1可见,argv作为一个变量,是list类型的。其含有两个元素(都是字符串),第一个元素是“test2.py”即所执行的python脚本的名字;第二个元素才是我们想要的“第一个”命令行参数。这个结论对于一般的python程序都是成立的,即argv[0]是脚本名,argv[1]是第一个命令行参数,argv[2]是第二个参数,等等。
程序2中的 script, first = argv 其实是用了一个特殊的python语法,即将argv[0]赋值给script变量,同时将argv[1]赋值给first变量。注意这种用法当且仅当argv的长度为2时才成立;如果要接受第二个命令行参数,就必须写成:script, first, second = argv追问
问题补充了一下,望解答!谢谢!
本回答被提问者采纳python: sys.argv的实际作用?
如题,今天遇到sys.argv,大概了解一些,但是具体还是不清楚,argv是用来干什么的呢,为什么要用它,什么时候用?请高手解答一二。
sys.argv就是保存命令行参数的变量,通过它你可以获取到命令行中传入的参数,从而执行不同的条件分支。或者不同的功能。python的optparse标准模块就是居于sys.argv实现的,写命令行工具的时候非常有用。
如果解决了您的问题请采纳!
如果未解决请继续追问 参考技术A sys.argv 将你从命令行执行脚本时的 脚本名称、参数保存到列表中。
如在linux 命令行下执行:test.py -v 123, 则 sys.argv=[‘test.py’,'-v','123']
这样你就可以在脚本'test.py'中使用这些参数了。追问
那再次输入命令行:test.py -help 是不是,sys.argv就被覆盖重写了?那sys.argv只限于这些作用吗,感觉作用不是很大。
本回答被提问者采纳以上是关于python中argv变量的问题。的主要内容,如果未能解决你的问题,请参考以下文章
怎样使用python的argv命令调用另一个文件里面定义的变量?