py文件接受外部传参,打印帮助信息和执行指定动作(方法收集)

 

 

1、fire(第三方模块)

项目地址:https://github.com/google/python-fire

import fire

class ceshi11():
    '''  这是帮助说明help?  '''
    def mid(self, num1, num2):
        ''' 这是mid函数,这边的能显示吗  '''
        return num1 + num2
    def mid1(self, num3, num4):
        return num3 - num4

if __name__ == "__main__":
    fire.Fire(ceshi11)

输入  python  xxx.py  mid  1  2

 

2、sys.argv(内置模块)

 

import sys, getopt

def main(argv):
    global inputfile
    global outputfile
    global inputfiletmp
    inputfile = ''
    outputfile = ''
    inputfiletmp = ''
    try:
      #opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])

      opts, args = getopt.getopt(argv,"hi:o:m:",["ifile=","ofile="])
      #“hi:o:m:”  h 表示是一个开关选项;"i:"和"o:" "m:"则表示后面应该带一个参数。

    except getopt.GetoptError:
      print ('test.py -i <inputfile> -o <outputfile> -m <inputfiletmp>')
      sys.exit(2)
    for opt, arg in opts:
      if opt == '-h':
         print ('test.py -i <inputfile> -o <outputfile> -m <inputfiletmp>')
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
      elif opt in ("-m"):
        inputfiletmp = arg
      elif opt not in ("-i"):
        inputfiletmp = arg
    print ('输入的文件为:', inputfile)
    print ('输出的文件为:', outputfile)
    print ('输入的文件为:', inputfiletmp)

if __name__ == "__main__":
   main(sys.argv[1:])

 

3、argparse(内置模块)

https://docs.python.org/zh-cn/3/library/argparse.html

# -*- coding: UTF-8 -*-
import argparse

def main():
    parser = argparse.ArgumentParser()
    '''
     可以创建 单-的短参数也可以创建双-的长参数。也可以混合创建。
     -h 和--help ,可以不创建,默认已经创建好了
    '''
    parser.add_argument("-v", "--verbosity", help="这里写上verbosity的帮助信息")
    parser.add_argument("-a", help="这里写上verbosity的帮助信息")
    args = parser.parse_args() #这一条好像是获取参数后的值的。
    #print(args.a, args.verbosity) #这里需要注意,短参数和长参数混合使用的,在调用参数后的值的时候 要用args.长参数
    if args.verbosity:
        verbosity_1(args.verbosity)

    if args.a:
        a_test(args.a)



def verbosity_1(a1):
    print("这是verbosity_1", a1)
def a_test(a1):
    print("这是a的函数", a1)

if __name__ == '__main__':

    main()

4、docopt(第三方模块)

这个好像不好用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值