python命令行输入文件名参数_Python自定义命令行参数

用过别人的脚本命令参数后,如何自己也自定义命令行参数呢,下面教给大家这些纸老虎:

命令行模块getopt:

getopt函数中一共有三个参数:

getopt.getopt(sys.argv[1:], "ho:i:", ["help", "output="])

sys.argv[1:] 和C语言中的argv相似,我们一般写sys.argv[1:]来过滤第一个参数,因为第一个参数是python脚本文件名,一般对我们没有实际用处,过滤掉即可。

"ho:i:":刚看的同学肯定有点懵*,可以称作为短格式分析串,是否曾经用过类似 XXX -i XXX -o XXX这样的命令,这对帮助你理解短格式分析串很有帮助,h不加":",表示不带参数。即-h,o后面有":"代表需要加参数-o "your file path",那么短格式,输入一个"-"即可。

["help", "output="]:python列表形式表示,称为长格式串,无"="不加参数,带"="需要加参数类似短格式串。用法为--help --output "your file path"。

以上分析相信你已经了解了这些参数作用,那么上一段简短的代码:

if __name__ == '__main__':

# for item in allfile:

# print item

# print os.path.splitext(item)[0]

#getopt()

try:

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

except getopt.GetoptError:

print 'hi Sam getopt error!Please input -h or --help'

sys.exit(1)

for name, value in options:

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

usage()

print ""

elif name in("-o","-i"):

print "short parameter %s" % (value)

elif name in("--ip","--port"):

print "long parameter %s"%(value)

for item in args:

print item

python环境下我们输入命令测试我们的脚本是否正确:

$ python getoptTest.py -o sam -i tom

short parameter sam

short parameter tom

$ python getoptTest.py --port 80

long parameter 80

python FileTest.py --port 80 -o Sam 100 120

long parameter 80

short parameter Sam

100

120

如果我们估计输入错误:

$ python FileTest.py -i

异常捕获结果:hi Sam getopt error!Please input -h or --help

自定义就是这么简单。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值