• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

python sys.argv[]详解

python 小爱 2个月前 (08-19) 53次浏览 已收录 0个评论 扫描二维码

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

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

<code class="has-numbering">#/home/hadoop/experiment/test.py
import sys
b=sys.argv[0]
print(b)
</code>

在交互器运行此脚本,我的电脑在linux下同时安装了python2.X和python3.X,因此在运行时为了运行python3.X,需要写成python3 test.py

<code class="has-numbering">hadoop@Slave1:~/experiment$ python3 test.py
</code>

 

结果:

<code class="has-numbering">/home/hadoop/experiment/test.py
</code>

 

可以看到,argv[0]的值就是程序本身

将脚本修改为如下:

<code class="has-numbering">#/home/hadoop/experiment/test.py
import sys
b=sys.argv[1]
print(b)
</code>

 

在交互器运行此脚本,加了一个参数a:

<code class="has-numbering">hadoop@Slave1:~/experiment$ python3 test.py  a 
</code>

 

结果:

<code class="has-numbering">  a
</code>

 

将脚本修改为如下:

<code class="has-numbering">#/home/hadoop/experiment/test.py
import sys
b=sys.argv[2:]
print(b)
</code>

 

在交互器运行此脚本,加了一个参数a:

<code class="has-numbering">hadoop@Slave1:~/experiment$ python3 test.py  a b c
</code>

 

结果:

<code class="has-numbering">['b', 'c']
</code>

 

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


小爱博客 , 版权所有
转载请注明原文链接:python sys.argv[]详解
喜欢 (1)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址