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 正则表达式入门(初级篇)
Dec 07 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
python学习开发mock接口
Apr 28 Python
django云端留言板实例详解
Jul 22 Python
Django中的静态文件管理过程解析
Aug 01 Python
python numpy存取文件的方式
Apr 01 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
浅谈Python中对象是如何被调用的
Apr 06 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php tp验证表单与自动填充函数代码
2012/02/22 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Python双向循环链表实现方法分析
2018/07/30 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
四风问题自查报告剖析材料
2014/02/08 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
成事在人观后感
2015/06/16 职场文书
文明上网主题班会
2015/08/14 职场文书
倡议书怎么写?
2019/04/11 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
Android中的Launch Mode详情
2022/06/05 Java/Android