参考原文:

Python模块之命令行参数解析 - 每天进步一点点!!! - 博客园 https://www.cnblogs.com/madsnotes/articles/5687079.html

python getopt使用 - tianzhu123的专栏 - CSDN博客 https://blog.csdn.net/tianzhu123/article/details/7655499

在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能。这时候就用到getopt模块了。

1、短格式和长格式

# 参数args一般是sys.argv[1:],sys.argv[1:] 过滤掉第一个参数(它是脚本名称,不是参数的一部分)

# shortopts :短格式 (-) ,后面没有冒号,表示后面不带参数,后面有冒号表示后面需要参数

# longopts :长格式(--) ,后面没有等号=,表示后面不带参数,有=,表示后面需要参数

# 使用方法:opts, args = getopt.getopt(args, shortopts, longopts = [])

options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])

2、options和args

import getopt

import sys

def usage():

‘提示命令行参数‘

print(

‘‘‘

Usage:sys.args[0] [option]

-h or --help:显示帮助信息

-i or --ip:ip

-p or --port:port

‘‘‘

)

def main():

if len(sys.argv) == 1:

usage()

sys.exit()

try:

# sys.argv[1:] 过滤掉第一个参数(它是脚本名称,不是参数的一部分)

# 返回值 options 是个包含元组的列表,每个元组是分析出来的格式信息,比如 [(‘-i‘,‘127.0.0.1‘),(‘-p‘,‘80‘)]

# args 是个列表,包含那些没有‘-’或‘--’的参数,比如:[‘55‘,‘66‘]

options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="])

except getopt.GetoptError:

print("argv error,please input")

sys.exit()

for name, value in options:

if name in ("-h", "--help"):

usage()

if name in ("-i", "--ip"):

print(‘ip is----‘, value)

if name in ("-p", "--port"):

print(‘port is----‘, value)

print(‘argv is----‘, args)

if __name__ == "__main__":

main()

3、测试

命令行中输入:

python test.py -h -i 127.0.0.1 --port=80 55 66 -h

结果:

是不是很简单!

python命令行参数有什么用_一文看懂命令行参数的用法——Python中的getopt神器相关推荐

  1. python可变序列和不可变序列_一文看懂可变序列和不可变序列

    先说点概念 在解释可变/不可变序列之前,先要知道什么是序列?序列就一个个元素有序地排列在一起,像小朋友"排排坐,吃果果"一样. 可变序列就是创建一个序列后,可以改变元素,可以比如成 ...

  2. python前端开发和后端开发工程师_一文看懂前端和后端开发

    作为一名开发者,你可能会想:2019 年最好的软件开发技术和编程语言会是什么?它们又是如何被应用在软件开发当中的?如果你在思考这个问题,那就来对地方了.这篇文章将对前端和后端开发技术做一个对比,先从基 ...

  3. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  4. 天线巴伦制作和原理_一文看懂巴伦(功能原理、性能参数、基本类型)

    原标题:一文看懂巴伦(功能原理.性能参数.基本类型) 巴伦(英语为balun)为一种三端口器件,或者说是一种通过将匹配输入转换为差分输出而实现平衡传输线电路与不平衡传输线电路之间的连接的宽带射频传输线 ...

  5. 怎么看电脑系统是win几_一文看懂arm架构和x86架构有什么区别

    一文看懂arm架构和x86架构有什么区别 本文主要介绍的是arm架构和x86架构的区别,首先介绍了ARM架构图,其次介绍了x86架构图,最后从性能.扩展能力.操作系统的兼容性.软件开发的方便性及可使用 ...

  6. mysql删除分表键_一文看懂 MySQL 分区和分表,提高表增删改查效率

    原标题:一文看懂 MySQL 分区和分表,提高表增删改查效率 作者:冯帅,精通Oracle. MySQL. 擅长异构数据库数据同步及迁移.数据库的设计和调优,对高可用方案有深入研究. MySQL分区和 ...

  7. 基本控制结构python跳转结构_一文看懂Python的控制结构:for、while、if…都有了...

    for循环列表 使用for循环的另一种常见模式是对列表进行迭代. martial_arts = [ "Sambo", "Muay Thai", "BJ ...

  8. 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数

    高阶函数 将函数作为参数传入,这样的函数称为高阶函数.函数式编程就是指这种高度抽象的编程范式. 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函 ...

  9. python面向对象编程指南 豆瓣_一文看懂Python面向对象编程(Python学习与新手入门必看)-绝对原创...

    尽管网上有许多关于Python面向对像的编程介绍,小编我看完后总觉得不是很满意,也不过瘾,所以决定自己亲自动手写篇文章,帮你理解Python面向对象的编程的基本概念和核心思想.本文内含很多实例代码,以 ...

最新文章

  1. 两个文件比对_Edlib:方便快速的长序列比对软件包
  2. 第十五届全国大学生智能汽车竞赛 人工智能创意组总决赛
  3. 虚拟服务器nodejs项目部署打包,nodejs+express搭建服务器及vue项目部署打包
  4. 高性能服务器架构思路(五)——分布式缓存
  5. pdf.js 在线浏览pdf组件构建与安装注意事项
  6. 博客订阅代码de制作
  7. 【dfs】虫食算(ybtoj dfs-1-3)
  8. 提高机器学习质量的想法_如何提高机器学习的数据质量?
  9. mysql中的正向工程_Hibernate系列之正向工程
  10. ASP.NET WebApi 图片上传
  11. Android 2.3 Gallery3D添加gif支持——修改代码(三)
  12. 2021-07-19交互设计精髓读后感
  13. 秦时明月更新了?青春回来了
  14. 计算机硬件维修书,计算机硬件维修手册
  15. snyk 项目漏洞检测
  16. 厦门大学计算机考研复试线2021,【厦门大学】2021考研复试分数线3月13日已公布!速看!...
  17. Pocket PC C#
  18. mfs java_mFS文件系统 - java学者 - OSCHINA - 中文开源技术交流社区
  19. 利用群发短信进行精准高效的会员营销
  20. AVR单片机开发6——AVR单片机串口Proteus调试注意事项

热门文章

  1. JqueryUI-1
  2. 段选择符和段描述符的关系
  3. Dubbo_异常_Service启动时默认将方法注册到内网IP
  4. 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
  5. 在你做推荐系的过程中都遇到过什么坑?
  6. Dive into BERT:语言模型与知识
  7. 扫掠曲面二条引导线_说说国策下的三四线城市与会展
  8. 乐鑫科技线上笔试什么内容_2020广东省公务员考试笔试考什么内容?笔试如何去备考?...
  9. matlab 判断整除函数_判断素数函数
  10. 独立站需要ERP系统吗?