本篇将介绍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 in range(1len(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 获得命令行参数的方法相关推荐

  1. python 命令行参数-Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数: ...

  2. python获得命令行参数的方法

    #encoding=utf8 import sys reload(sys) sys.setdefaultencoding("utf8") print "参数名: &quo ...

  3. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

  4. Python的命令行参数解析

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 命令行参数解析在编程语言中基本都会碰到,Python中内置了一个用于命令项选项与参数解析的模块argparse.下 ...

  5. python argvparser_Python命令行参数argv和argparse该如何使用

    概述 运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式: sys.argv - 简洁 argparse - 丰富,可自定义 下面详细说一下具体时使用 argv # test_ar ...

  6. python argparse命令行参数解析

    argparse是python用于解析命令行参数和选项的标准模块. 很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选项. argparse 模块可以让人轻松编写用户友好的命令 ...

  7. Python之命令行参数解析

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...

  8. python 命令行参数-Python处理命令行参数

    1. 将命令行参数保存在列表中,注意argv[0]是程序本身的名字: import sys print(sys.argv) print(sys.argv[1]) python argv.py loca ...

  9. python 命令行参数-python中命令行参数

    python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...

最新文章

  1. Sublime_正则查找替换
  2. centos6.5报错:checking filesystems failed问题处理
  3. html图片加波浪滤镜,CSS滤镜wave属性(波形滤镜)
  4. 昨晚,B站崩了!看了网友们的评论,我差点笑死...
  5. 图像处理与计算机视觉:基础,经典以及最近发展(1)序
  6. python循环实验心得_2019.06.18学习python循环总结
  7. laravel 分页
  8. 计算机科学计算方面分为,计算机方面的专业分为哪些类?【资讯与计算科学】和【电脑科学与技术专业】有什么不同?...
  9. 06-对图像进行腐蚀操作
  10. O_RDWR, O_CREAT等open函数标志位在哪里定义?
  11. Git:小乌龟报错no supported authentication methods avaiable
  12. Algorithm: 匈牙利算法
  13. ijkplayer中遇到的问题汇总
  14. 面向对象闲话(一)——什么是对象
  15. 百度排名批量查询_白杨SEO:一文告诉你SEO站长综合查询工具5118功能使用大全!...
  16. 问答网站Stack Overflow的成功之道
  17. 炮兵阵地(状压dp)
  18. 更换固态硬盘(不重装系统)(3)
  19. 【嵌入式应用4】ROS话题编程
  20. mac移动鼠标光标会变大_如何在Mac上使鼠标光标变大或变小

热门文章

  1. 百度程序员哀叹:回老家发现村里很多人开保时捷,道奇等豪车,比程序员有钱多了!...
  2. 黄峥辞职,拼多多何去何从?
  3. 阿里某P5程序员求助:跟女票要结婚,她家要50万彩礼,女票爸爸说钱不够可以先欠着,这婚能结吗?欠条以后能赖吗?...
  4. TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04
  5. 推荐8个年薪100万BAT级优质技术大号
  6. 100%的BAT招聘岗位都考的知识,你精通了吗?
  7. 美团分布式ID生成服务LeafCode
  8. java8中的default关键字
  9. 获取java hashCode分布
  10. TestStack.White安装详解