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创建一个最简单http webserver服务器的方法
May 08 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
python对象与json相互转换的方法
May 07 Python
elasticsearch python 查询的两种方法
Aug 04 Python
Python中包的用法及安装
Feb 11 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Python requests模块安装及使用教程图解
Jun 30 Python
python为什么要安装到c盘
Jul 20 Python
利用Python多线程实现图片下载器
Mar 25 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 无极分类(递归)实现代码
2010/01/05 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
python 实时遍历日志文件
2016/04/12 Python
python实现简单购物商城
2016/05/21 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
如何卸载python插件
2020/07/08 Python
python的flask框架难学吗
2020/07/31 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
幼儿园开学家长寄语
2014/01/19 职场文书
市级文明单位申报材料
2014/05/07 职场文书
财务负责人任命书
2014/06/06 职场文书
售房协议书
2014/08/19 职场文书
小学见习报告
2014/10/31 职场文书
面试复试通知单
2015/04/24 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
七一慰问简报
2015/07/20 职场文书
实习感想范文
2015/08/10 职场文书
离婚财产分割协议书
2015/08/11 职场文书
golang json数组拼接的实例
2021/04/28 Golang
PyQt5实现多张图片显示并滚动
2021/06/11 Python