python编写工具之基础——处理命令行参数

1.分类


1.命令行的参数的位置是固定的。比如ip是第一个参数,端口是第二个,而不能反过来
2.位置不固定。用一横杠加个字母什么的,表示他后面跟的是什么参数(如 -p 8888 :代表端口是8888)

2.如何获得命令行参数

必须导入sys模块~
import sys
print sys.argv

可以看到  sys.argv是一个列表,获得的参数中,第一个文件名,后面才是我们输入的各种参数

3.参数的位置是固定的

# encoding: utf-8

"""
@version: 
@author: giantbranch
@file: fix_position.py
@time: 2016/3/18 21:58
"""

import sys
# print sys.argv

def test1():
    print "你调用了test1"

def getYourWord(word):
    print "你输入了" + word

def main():
    try:
        # 获取第二个命令行参数,因为第一个为文件名
        func = sys.argv[1]
        # 通过判断调用相应功能
        if(func == "test1"):
            test1()
        elif(func == "say"):
            try:
                getYourWord(sys.argv[2])
            except:
                print "请输入你想say什么"
        else:
            print "输入参数只能使test1或say"
    except:
        print "请输入一个参数,只能使test1或say"

main()



3.参数的位置是不固定的

#-*- coding:utf8 -*-  

"""
@version: 
@author: giantbranch
@file: unfix_position.py
@time: 2016/3/18 22:57
"""

import sys
import getopt

def test1():
    print "你调用了test1"

def getYourWord(word):
    print "你输入了" + word

def usage():
    print "用法举例:"
    print "python unfix_position.py -h"
    print "python unfix_position.py --help"
    print "python unfix_position.py -t"
    print "python unfix_position.py --test1"
    print "python unfix_position.py -s hello"
    # 这个不行
    print "python unfix_position.py --say hello"

def main():

    # 读取命令行选项,若没有该选项则显示用法
    try:
        # opts:一个列表,列表的每个元素为键值对
        # args:其实就是sys.argv[1:]
        # sys.argv[1:]:只处理第二个及以后的参数
        # "ts:h":选项的简写,有冒号的表示后面必须接这个选项的值(如 -s hello)
        # ["help", "test1", "say"] :当然也可以详细地写出来,不过要两条横杠(--)
        opts, args = getopt.getopt(sys.argv[1:], "ts:h",["help", "test1", "say"])
        # print opts

        # 具体处理命令行参数
        for o,v in opts:
            if o in ("-h","--help"):
                usage()
            elif o in ("-t", "--test1"):
                test1()
            # 经测试--是不能带后继值的
            elif o in ("-s", "--say"):
                 getYourWord(v)
    except getopt.GetoptError as err:
        # print str(err)
        usage()

main()



好了,就到这,具体写工具就自我发挥咯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值