Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于CLI程序的文件/类模式_Python_Design Patterns_Optimization_Command Line Interface - Fatal编程技术网

Python 用于CLI程序的文件/类模式

Python 用于CLI程序的文件/类模式,python,design-patterns,optimization,command-line-interface,Python,Design Patterns,Optimization,Command Line Interface,事情是这样的,我想开发一个CLI程序(我想是用Python编写的),我是Python的初学者(还有一个好的IDE用于Python吗?),所以我希望您的一些知识能够帮助我了解如何做到这一点 所以对于这个项目,我想到了这样的想法: <program_name> category1 action1 args <program_name> category1 action2 args <program_name> category2 action1 args 类

事情是这样的,我想开发一个CLI程序(我想是用Python编写的),我是Python的初学者(还有一个好的IDE用于Python吗?),所以我希望您的一些知识能够帮助我了解如何做到这一点

所以对于这个项目,我想到了这样的想法:

<program_name> category1 action1 args

<program_name> category1 action2 args

<program_name> category2 action1 args
类别1操作1参数
类别1操作2参数
类别2操作1参数
类似于
openssl
with:
openssl enc-e-bf cbc…


因此,我当然认为命令模式是有用的,但我不知道如何安排不同的类别。

我同意使用argparse-但是如果你真的是初学者-不要使用IDE-习惯这种语言。如果您想要一个好的多文件程序编辑器(使用Kate),它不是一个IDE,但可能非常有用。

有多个参数解析器可用,我会提到我最喜欢的:

  • argparse
    -在Python 2.7版本之前都是内置的,较旧的版本可以从PyPi将其作为包安装
  • plac
    -来自pypi的包,基于
    argparse
    ,但使用起来更简单
  • docopt
    ——这是一个非常好的解决方案,它首先为命令编写docstring,然后将其解析为命令的规范——这将产生您可以想象的最短且可读性很强的代码。必须从pypi安装
我所说的“从pypi安装”是指它可以在中找到,并且可以通过
pip
命令安装。安装Python后要做的第一件事是确保安装了pip命令。它随Python3.4一起提供,对于较旧版本的Python,请参见

就我个人而言,我不再使用argparse了,它说得太多,可读性不强

在任何情况下,请先获取一些教程并进行测试,这将帮助您快速入门:

对于
plac
请参见:,这里有一个指向pdf和html文档的链接,加上github提供了一组很好的示例


对于
docopt
请参见中的精彩介绍和中的示例,Python内置于命令行程序中。@msvalkon是的,我看到有一个解析器,但问题是如何安排代码(类和文件)以匹配类别和操作之类的内容您必须回答一个更具体的问题,这个有点太宽泛了。我也是这么想的,好吧,我会试着开始写一些代码,看看我是否能管理它