Python 获得命令行参数的方法
本篇将介绍python中sys, getopt模块处理命令行参数
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
test.py
1
|
import sys
|
2
|
print "脚本名:" , sys.argv[ 0 ]
|
3
|
for i in range ( 1 , len (sys.argv)):
|
4
|
print "参数" , i, sys.argv[i]
|
>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world
python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h
getopt函数原形:
getopt.getopt(args, options[, long_options])
convert.py
import sys, getopt
|
02
|
03
|
opts, args = getopt.getopt(sys.argv[ 1 :], "hi:o:" )
|
04
|
input_file = ""
|
05
|
output_file = ""
|
06
|
07
|
for op, value in opts:
|
08
|
if op = = "-i" :
|
09
|
input_file = value
|
10
|
elif op = = "-o" :
|
11
|
output_file = value
|
12
|
elif op = = "-h" :
|
13
|
usage()
|
14
|
sys.exit()
|
代码解释:
a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"hi:o:"就表示"h"是一个开关选项;"i:"和"o:"则表示后面应该带一个参数。
c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。
getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
--version
--file=error.txt
让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
原文链接http://www.linuxidc.com/Linux/2012-02/53764.htm
Python 获得命令行参数的方法相关推荐
- python 命令行参数-Python 获得命令行参数的方法(推荐)
本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数: ...
- python获得命令行参数的方法
#encoding=utf8 import sys reload(sys) sys.setdefaultencoding("utf8") print "参数名: &quo ...
- python 命令-python解析命令行参数的三种方法详解
这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...
- Python的命令行参数解析
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 命令行参数解析在编程语言中基本都会碰到,Python中内置了一个用于命令项选项与参数解析的模块argparse.下 ...
- python argvparser_Python命令行参数argv和argparse该如何使用
概述 运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式: sys.argv - 简洁 argparse - 丰富,可自定义 下面详细说一下具体时使用 argv # test_ar ...
- python argparse命令行参数解析
argparse是python用于解析命令行参数和选项的标准模块. 很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选项. argparse 模块可以让人轻松编写用户友好的命令 ...
- Python之命令行参数解析
Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...
- python 命令行参数-Python处理命令行参数
1. 将命令行参数保存在列表中,注意argv[0]是程序本身的名字: import sys print(sys.argv) print(sys.argv[1]) python argv.py loca ...
- python 命令行参数-python中命令行参数
python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...
最新文章
- Sublime_正则查找替换
- centos6.5报错:checking filesystems failed问题处理
- html图片加波浪滤镜,CSS滤镜wave属性(波形滤镜)
- 昨晚,B站崩了!看了网友们的评论,我差点笑死...
- 图像处理与计算机视觉:基础,经典以及最近发展(1)序
- python循环实验心得_2019.06.18学习python循环总结
- laravel 分页
- 计算机科学计算方面分为,计算机方面的专业分为哪些类?【资讯与计算科学】和【电脑科学与技术专业】有什么不同?...
- 06-对图像进行腐蚀操作
- O_RDWR, O_CREAT等open函数标志位在哪里定义?
- Git:小乌龟报错no supported authentication methods avaiable
- Algorithm: 匈牙利算法
- ijkplayer中遇到的问题汇总
- 面向对象闲话(一)——什么是对象
- 百度排名批量查询_白杨SEO:一文告诉你SEO站长综合查询工具5118功能使用大全!...
- 问答网站Stack Overflow的成功之道
- 炮兵阵地(状压dp)
- 更换固态硬盘(不重装系统)(3)
- 【嵌入式应用4】ROS话题编程
- mac移动鼠标光标会变大_如何在Mac上使鼠标光标变大或变小
热门文章
- 百度程序员哀叹:回老家发现村里很多人开保时捷,道奇等豪车,比程序员有钱多了!...
- 黄峥辞职,拼多多何去何从?
- 阿里某P5程序员求助:跟女票要结婚,她家要50万彩礼,女票爸爸说钱不够可以先欠着,这婚能结吗?欠条以后能赖吗?...
- TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04
- 推荐8个年薪100万BAT级优质技术大号
- 100%的BAT招聘岗位都考的知识,你精通了吗?
- 美团分布式ID生成服务LeafCode
- java8中的default关键字
- 获取java hashCode分布
- TestStack.White安装详解