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之wxPython菜单使用详解
Sep 28 Python
python实现人脸识别代码
Nov 08 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 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
用libtemplate实现静态网页生成
2006/10/09 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
详谈Node.js之操作文件系统
2017/08/29 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
python  logging日志打印过程解析
2019/10/22 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
如何查找网页漏洞
2016/06/22 面试题
自动化专业个人求职信范文
2013/12/30 职场文书
学习计划书怎么写
2014/09/15 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
团组织推优材料
2014/12/29 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
工作失职检讨书范文
2015/05/05 职场文书
八年级历史教学反思
2016/02/19 职场文书
自荐信范文
2019/05/20 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android
带你了解Java中的ForkJoin
2022/04/28 Java/Android