Python argv用法详解


Posted in Python onJanuary 08, 2016

想用python处理一下文件,发现有argv这个用法,搜来学习一下。

如果想对python脚步传参数,那么就需要命令行参数的支持了,这样可以省的每次去改脚步了。

用法是:python xx.py xxx

举例如下:

#-*- coding:utf- -*-
from sys import argv
script,first = argv
print "the script is called:", script
print "the first variable is:", first

这里argv接收到的是一个列表变量

#-*- coding:utf- -*-
from sys import argv
f = open(argv[], 'r')
print f.read()
f.close()

比方说这里我读取文件名,开始写成了 open(argv, 'r'),会提示类型错误,改成argv[1]就好了

下面再来详细介绍下sys.argv[]用法

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

Python 相关文章推荐
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
python实现Windows电脑定时关机
Jun 20 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
python实现狄克斯特拉算法
Jan 17 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
在python中求分布函数相关的包实例
Apr 15 Python
浅谈Python中的继承
Jun 19 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
python解压zip包中文乱码解决方法
Nov 27 Python
详解Python爬虫的基本写法
Jan 08 #Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 #Python
星球大战与Python之间的那些事
Jan 07 #Python
python高手之路python处理excel文件(方法汇总)
Jan 07 #Python
Python解析最简单的验证码
Jan 07 #Python
Python中http请求方法库汇总
Jan 06 #Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 #Python
You might like
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
原生js实现随机点名
2020/07/05 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
python3中布局背景颜色代码分析
2020/12/01 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
python中的unittest框架实例详解
2021/02/05 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
2013年入党人员的自我鉴定
2013/10/25 职场文书
大客户销售经理职责
2013/12/04 职场文书
电子商务网站的创业计划书
2014/01/05 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
辩护意见书
2015/06/04 职场文书