一个简单的命令行选项处理器

clop的Python项目详细描述


$ pip install clop

$ pydoc clop

$ python -m clop # Run the demo

CLOP提供最小的命令行选项规范和处理。

当你的命令行处理需要一匹真正的马的国王的力量时, 在标准python库中使用argparse。

当把两个椰子片放在一匹小马上足够好的时候, 用氯气。

指定命令行选项的单个类, 对这些选项处理命令行, 并将处理的结果作为dict提供。 还为每个选项和调用程序提供简单的帮助字符串。

  """Your program."""

  from clop import Clop

  ...

  # Make a Clop object.
  clp = Clop()

  # Specify acceptable options and their arguments.
  clp.addOptionDef(letter = 'k',
      required = True,
      numArgs = 3,
      help = 'Help for option k')

  ...

  # optArgs is a dictionary of options and arguments
  optArgs = clp.processCmdLine(sys.argv[1:])

  ...

  # Print the help string when you need it.
  helpStr = clp.helpString('clop:\nShort demo of the clop module.')
  print(helpStr)

clop:
Short demo of the clop module.

REQUIRED OPTIONS:
k: Help for option k
  Allowed arguments: Exactly 3
m: Help for option m
  Allowed arguments: Exactly 1
n: Help for option n
  Allowed arguments: 0 or more

OPTIONAL OPTIONS:
o: Help for option o
  Allowed arguments: Exactly 0
p: Help for option p
  Allowed arguments: Exactly 1
q: Help for option q
  Allowed arguments: 0 or more

CLOP在其main()函数中包含一个演示:

$ python -m clop -k 1 2 3 -mone-two-n 3 4 5 -o-p 1 -q "one two"

{'k': ['1', '2', '3'], 'm': ['one-two'], 'o': [], 'n': ['3', '4', '5'], 'q': ['one two'], 'p': ['1']}

  • 选项包括短划线和单个字母:-o
  • 选项后面可以跟零个或多个参数。
  • 选项只能用其字母(-o)指定。否–长选项。
  • 选项字母可以是字母.isalpha()为真的任何“字母”。
  • 无法组合选项。每个破折号只有一个字符,而不是-olmp。
  • 选项可以按任意顺序显示在命令行上。
  • 命令行中的选项和参数是字符串。 调用程序执行任何类型和值检查和转换 命令行处理后的参数。 除了允许的选项和参数之外,clop不做任何判断。

不太可能有更多的clop特性。如果你需要更多,argparse非常好, 带着一匹真正的马。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
serversocket Java服务器socket中断如何   java通过随机类和排序为数组生成数据   @Column length大于255个字符的java实体   java在使用NIO2 API时消除检查异常   java使用用户凭据通过Microsoft Graph API上的控制台应用程序发送电子邮件   java将2个ArrayList一个接一个地显示到jTextArea中,根据输入的数据多次显示   java无法使用导入的库。安卓工作室。谷歌云端点jar   spring boot Neo4j Apoc在java中获取结果摘要时的情况   转义特殊字符javajson   无法在java中使用OpenCV读取图像,涉及unicode路径   swing Document Listener java“无法实例化DocumentListener类型”   java Piglatin,难以理解如何移动“.”一串   java映射请求基于一个可观察对象中的每个元素,使用改进?   java在可扩展字符串中搜索时,如何忽略字符的大小写?   在包中分组类的java约定   python为Java应用程序创建Ubuntu指示小程序   java Camunda:如何通过processInstanceId获取所有已完成的任务