Python命令行参数处理

  • A+
所属分类:python快速入门
摘要这一篇文章提供一个命令行参数处理的类,与之前讲的fire库相互补充。顺便熟悉一下类的一些用法。

文章目录(Table of Contents)

前言

之前我们讲过自动生成命令行的工具,python Fire 介绍。下面看一下如何来自己实现一下相同的功能。可以注意一下这里类的写法。

实现方式

下面放一段比较常用的,用来解析命令行参数的类,可以很方便解析命令行的参数;

  1. import sys
  2. class Args(object):
  3.     """
  4.     命令行参数处理类
  5.     """
  6.     def __init__(self):
  7.         # 保存命令行参数列表
  8.         self.args = sys.argv[1:]
  9.     def _value_after_option(self, option):
  10.         """
  11.         内部函数,用来获取跟在选项后面的值
  12.         """
  13.         try:
  14.             # 获得选项位置
  15.             index = self.args.index(option)
  16.             # 下一位置即为选项值
  17.             return self.args[index + 1]
  18.         except (ValueErrorIndexError):
  19.             print('Parameter Error')
  20.             exit()
  21.     @property
  22.     def config_path(self):
  23.         return self._value_after_option('-c')
  24.     @property
  25.     def userdata_path(self):
  26.         return self._value_after_option('-d')
  27.     @property
  28.     def export_path(self):
  29.         return self._value_after_option('-o')

 使用情况

下面来看一下使用的情况:

  1. if __name__ == '__main__':
  2.     args = Args()
  3.     configFile = args.config_path
  4.     inputData = args.userdata_path
  5.     outputData = args.export_path
  6.     print('-c : ',configFile)
  7.     print('-d : ',inputData)
  8.     print('-o : ',outputData)

如下图所示,可以看到可以解析出各个参数后面的值;

Python命令行参数处理
  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: