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()
好了,就到这,具体写工具就自我发挥咯