可以解析这样的命令

./cron_ctrl jobname1 --stop ;./cron_ctrl jobname1 --start;./cron_ctrl jobname1 --list

#!/usr/bin/env python

importosimportsysfrom optparse importOptionParserdefcronOptionParser():

name=sys.argv[1]#print name

parser =OptionParser()

parser.add_option("","--stop",dest="stopname",action="store_false",help="stop a job") #store_false 表示--stop 不带参数,stopname用来判断命令中是否有--stop

parser.add_option("","--start",dest="startname",action="store_false",help="start a job")

parser.add_option("-l","--list",dest="listname",action="store_false",help="list a job")

(options,args)=parser.parse_args()

stopname=options.stopname

startname=options.startname

listname=options.listnameif stopname!=None:###do something ###

os.system(‘crontab -e‘)if startname!=None:###do something ###

os.system(‘crontab -e‘)if listname!=None:###do somethind ###

os.system(‘crontab -l | grep name‘)if __name__=="__main__":

cronOptionParser()

以上代码主要参考http://blog.csdn.net/azhao_dn/article/details/6921441

需要注意的是一些参数 比如说 -o file 这里的-o后面需要加参数,而有些比如说-h 不需要加参数,这两种要注意区别对待

上面这个实现略显繁琐,所以有下面的

import sys

import getopt

def TestGetOpt():

try:

opts, args = getopt.getopt(sys.argv[1:],‘d:f:h‘,[‘days=‘,‘files=‘,‘help‘])

except getopt.GetoptError:

usage()

sys.exit()

print (opts)

print (args)

for o, a in opts:

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

usage()

sys.exit()

elif o in ("-d", "--days"):

day = a

elif o in ("-f", "--files"):

files = a

print (day)

print (files)

对于程序的解释是

1. 处理所使用的函数叫getopt(),因为是直接使用import导入的getopt模块,所以要加上限定getopt才可以。

2. 使用sys.argv[1:]过滤掉第一个参数(它是执行脚本的名字,不应算作参数的一部分)。

3.

使用短格式分析串"ho:"。当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中

写入选项字符同时后面加一个":"号。所以"ho:"就表示"h"是一个开关选项;"o:"则表示后面应该带一个参数。

4. 使用长格式分析串列表:["help", "output="]。长格式串也可以有开关状态,即后面不跟"="号。如果跟一个等号则表示后面还应有一个参数。这个长格式表示"help"是一个开关选项;"output="则表示后面应该带一个参数。

5. 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串‘‘。

6. 整个过程使用异常来包含,这样当分析出错时,就可以打印出使用信息来通知用户如何使用这个程序。

最后,这里http://lingxiankong.github.io/blog/2014/01/14/command-line-parser/ 给出了更多的方法。

原文:http://www.cnblogs.com/cdwodm/p/4495862.html

python命令解析_python解析命令行相关推荐

  1. python退出语句_python退出命令

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 要退出python命令行,我必须输入exit(). 如果我输入退出,它提示:us ...

  2. python实时定位_Python实现命令行监控北京实时公交之一

    开头先放上效果展示 在命令行输入 python bus.py -i,显示app基本信息,如下: 在命令行输入 python bus.py 438,显示北京438路公交车的位置,如下: 红色的B说明在梅 ...

  3. python terminal调试_python执行命令行调试工具pdb

    调试 pdb pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++). 命令简写命令作用 break b 设置断点(用法,b :在第数字行设置断点................... ...

  4. python 通讯录 字典_Python实现命令行通讯录

    1.实现目标 编写一个命令行通讯录程序,可以添加.查询.删除通讯录好友及电话 2.实现方法 创建一个类来表示一个人的信息.使用字典存储每个人的对象,名字作为键. 使用pickle模块永久地把这些对象存 ...

  5. python写通讯录_Python实现命令行通讯录实例教程

    1.实现目标 编写一个命令行通讯录程序,可以添加.查询.删除通讯录好友及电话 2.实现方法 创建一个类来表示一个人的信息.使用字典存储每个人的对象,名字作为键. 使用pickle模块永久地把这些对象存 ...

  6. python写通讯录_Python实现命令行通讯录

    1.实现目标 编写一个命令行通讯录程序,可以添加.查询.删除通讯录好友及电话 2.实现方法 创建一个类来表示一个人的信息.使用字典存储每个人的对象,名字作为键. 使用pickle模块永久地把这些对象存 ...

  7. python常用命令格式_python常用命令有哪些

    原标题:python常用命令有哪些 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言.它包含了许多命令来帮助我们实现各种各有的功能,接下来在文章中为大家分享 [推荐课程:Pyth ...

  8. python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决

    python --解析字符串,并返回xml格式字符串 急急急. str = """Registrations: ============================= ...

  9. python pyquery库_python解析HTML之:PyQuery库的介绍与使用

    前言 Python关于爬虫的库挺多的,也各有所长.了解前端的也都知道, jQuery 能够通过选择器精确定位 DOM 树中的目标并进行操作,所以我想如果能用 jQuery 去爬网页那就 cool 了. ...

最新文章

  1. 2020这一年,我完成了这几件大事
  2. 由粗到精学习LVI-SAM基础:多传感器内外参标定原理
  3. Tengine(nginx) 搭建Tomcat集群
  4. 【leetcode】1007. Minimum Domino Rotations For Equal Row
  5. oracle的文件后缀名,转:数据文件的扩展名是ora,dbf,dat的,有什么区别?
  6. 偷梁换柱做自己的封装系统
  7. Code Runner for VS Code 突破 1000 万下载量!支持运行超过 40 种语言
  8. php开发环境 ubuntu,Ubuntu配置PHP开发环境
  9. 程序员,这600单词你知道吗?
  10. github 代理_GitHub访问提速方法
  11. Android开发笔记(十八)书籍翻页动画PageAnimation
  12. 手写一个类django框架
  13. 计算机三级数据库:课本知识点总结以及备考方案建议
  14. 在五环六环之间,有最真实的北京
  15. 上架Google Play Store,国内这些SDK千万不能用,小心被拒!
  16. 设计模式---外观(Facade)模式
  17. 监控易携手三大运营商,助推安徽省农行三级网扁平化管理
  18. linux下实现root用户和其他用户之间转换
  19. 计算机表格函数知识点,Excel知识点大全
  20. 苹果电脑打开wps云文档方法

热门文章

  1. Silverlight学习之——如何在 Silverlight 中使用 Deep Zoom
  2. 再度剖析AD账户新旧密码同时可用的问题
  3. 众多支持者助力BCH第二次硬分叉升级
  4. 【JS第28期】继承-借用构造函数
  5. 教你如何更优惠的购买阿里云服务器?
  6. C++ primer习题10.9
  7. 关于编码、unicode、utf-8的讨论
  8. React入门系列 - 5. 表单与变量的关联
  9. 云从科技在渝布局人工智能大数据平台
  10. 使用jmeter测试java程序