Python sys.argv[]用法
sys.argv,其实就是一个list,它是sys模块下的一个全局变量,第一个元素是模块名、后面是依次传入的参数。
比如可以这样传入 pyton temp.py a b c d,一共传入a、b、c、d四个参数
len(sys.argv) == 5
那么sys.argv[0] == "temp.py" sys.argv[1] == "a" sys.argv[2] == "b"
看一下python代码:
在看下面代码,进一步进行了解
原来sys模块sys.argv是个列表,而sys.argv[0]、sys.argv[1]、sys.argv[2]只不过是在取列表中的值,但这个列表有我们决定。
=============================================================================================================
=============================================================================================================
Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,以下两个例子说明:
1、使用sys.argv[]的一简单实例
- import sys,os
- os.system(sys.argv[1])
这个例子os.system接收命令行参数,运行参数指令,保存为sample1.py,命令行带参数运行sample1.py notepad,将打开记事本程序。
2、这个例子是简明python教程上的,明白它之后你就明白sys.argv[]了
- import sys
- def readfile(filename): #从文件中读出文件内容
- '''''Print a file to the standard output.'''
- f = file(filename)
- while True:
- line = f.readline()
- if len(line) == 0:
- break
- print line, # notice comma 分别输出每行内容
- f.close()
- # Script starts from here
- if len(sys.argv) < 2:
- print 'No action specified.'
- sys.exit()
- if sys.argv[1].startswith('--'):
- option = sys.argv[1][2:]
- # fetch sys.argv[1] but without the first two characters
- if option == 'version': #当命令行参数为-- version,显示版本号
- print 'Version 1.2'
- elif option == 'help': #当命令行参数为--help时,显示相关帮助内容
- print '''''/
- This program prints files to the standard output.
- Any number of files can be specified.
- Options include:
- --version : Prints the version number
- --help : Display this help'''
- else:
- print 'Unknown option.'
- sys.exit()
- else:
- for filename in sys.argv[1:]: #当参数为文件名时,传入readfile,读出其内容
- readfile(filename)
保存程序为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[1:]又代表什么?
- 这就是个分片操作
- 简单例子
- l = [1,2,3,4,5]
- l[1:],意思就是取列表l第一个元素后的值,也就是[2,3,4,5]
- l[2:], -----------------[3,4,5]
- 还可以倒序来取
- l[:-1],-----------------从右到左,取最后一个元素前面的值,[1,2,3,4]
- l[:-2],-----------------[1,2,3]
- 而你问的sys.argv[1:],这个是你main(xxx)方法的参数,那么这个参数从哪里来
- 从这里来,比如
- python test.py --t help --v
- 那么sys.argv就是['test.py', '--t', 'help', '--v']
- 那么sys.argv[1:]就是['--t', 'help', '--v']
Python sys.argv[]用法的更多相关文章
- python基础之 sys.argv[]用法
sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始. arg[1]表示第一个命令行参数 arg[1][2:] 表示取第一个命令行参数,但是去掉前两 ...
- Python sys.argv[] 的用法
sys.argv变量是一个list, 执行 python abc.py a b c 时, sys.argv[0]为 abc.py sys.argv[1]为 a sys.argv[2]为 b sys.a ...
- python sys.argv[]的用法简明解释
sys模块中文参考文档:http://xukaizijian.blog.163.com/blog/static/170433119201111625428624/ sys.argv[]: 「argv」 ...
- Python 中的 sys.argv 用法
sys.argv是获取运行python文件的时候命令行参数 下面的代码文件是a.py,当我不用IDE工具,只用命令行窗口运行的时候,进入文件所在目录,输入:python a.py 输出结果如下 imp ...
- python中sys.argv[]用法
sys.argv[]的作用: 在运行python文件的时候往文件里面传递参数. 从函数外部获取到变量值 import sys arg = sys.argv[0] args = sys.argv[:] ...
- Python的sys.argv用法
import sys a = sys.argv[:] print("输入的参数为:", a) def train_start(start_time, end_time, selec ...
- 9.python中sys.argv[]用法说明
在python中sys.argv[]是用来获取命令行输入的参数的(参数和参数之间空格区分),sys.argv[0]表示代码本身文件路径,所以从参数1开始,表示获取的参数了 举例说明:创建一个程序名为t ...
- python sys.argv[]
sys.argv[]是用来获取命令行参数的,是一个由该脚本自身路径和其它输入的参数组成的List.sys.argv[0]表示代码本身文件路径. 这里,当我们执行python using_sys.py ...
- sys.argv[]用法-转载
sys.argv变量是一个字符串的列表.特别地,sys.argv包含了命令行参数 的列表,即使用命令行传递给你的程序的参数. 这里,当我们执行python using_sys.py we are ar ...
随机推荐
- Web API 异常处理
Web Api的ExceptionFilter只能截获并处理Action执行过程中发生的异常,在Action执行过程之外如果出现异常,ExceptionFilter是无能为力的. 这些异常包括: 1. ...
- mvc webapi路由重写
修改app_start/webapiconfig.cs using System.Web.Http; using System.Web.Routing; using Ninject; using Tx ...
- linux 编译运行c文件
在ubuntu安装gcc 编辑 test.c /* Not stdio.h */ #include <unistd.h> void main() { char str[100]; /*Wr ...
- AOP 技术原理——代理模式全面总结
前言 非常重要的一个设计模式,也很常见,很多框架都有它的影子.定义就不多说了.两点: 1.为其它对象提供一个代理服务,间接控制对这个对象的访问,联想 Spring 事务机制,在合适的方法上加个 tra ...
- Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 "See 'EntityValidationErrors' property for more details.&qu ...
- OSI 协议
- 【Clojure 基本知识】小技巧s
;;模拟console原位更新输出 ;;空格擦除法,输出空格,是为了擦除短字符串尾部没有占用的位置,因为退格只是回退,并不删除(dotimes [_ 10](let [n (rand) sn (.su ...
- 24小时学通Linux内核之电源开和关时都发生了什么
说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自己制定的任务,不过总有几个读者给自己鼓励,很欣慰的事情,不多感慨了 ...
- 【腾讯云的1001种玩法】 Laravel 整合万向优图图片管理能力,打造高效图片处理服务
版权声明:本文由白宦成原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/574549001488234358 来源:腾云阁 h ...
- Spring AOP 自动创建代理
Spring为我们提供了自动代理机制,让容器为我们自动生成代理,把我们从烦琐的配置工作中解放出来,在内部,Spring 使用BeanPostProcessor自动地完成这项工作. 1.实现 ...