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 相关文章推荐
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
python 字典(dict)按键和值排序
Jun 28 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
transform python环境快速配置方法
Sep 27 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
使用python实现对元素的长截图功能
Nov 14 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
tensorflow模型转ncnn的操作方式
May 25 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python 实现图片裁剪小工具
Feb 02 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 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
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
javascript读取xml
2006/11/04 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
35个Python编程小技巧
2014/04/01 Python
go语言计算两个时间的时间差方法
2015/03/13 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
网络技术专业求职信
2014/05/02 职场文书
企业贷款委托书格式
2014/09/12 职场文书
政风行风整改方案
2014/10/25 职场文书
值班管理制度范本
2015/08/06 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电