python命令行编程示例、配方
最近工作中需要python命令行实用程序,我没有编写cli的经验。不管怎样,我还是要把它们拿出来 我最大的障碍是这些项目的结构。此外,还介绍了获取和验证用户输入的方法。我已经结束了很长的while循环,我只是不认为这是最有效的方法python命令行编程示例、配方,python,command-line-interface,Python,Command Line Interface,最近工作中需要python命令行实用程序,我没有编写cli的经验。不管怎样,我还是要把它们拿出来 我最大的障碍是这些项目的结构。此外,还介绍了获取和验证用户输入的方法。我已经结束了很长的while循环,我只是不认为这是最有效的方法 是否有人可以提供指向开源cli程序的链接,我可以选择这些链接来了解一些情况?或者,我可以拿到的书、教程等。我四处寻找,但几乎没有什么成功(我的谷歌技能肯定是缺乏的)。几乎任何python脚本都可以是“命令行程序”。您有什么具体问题?随机提示: optionparse
是否有人可以提供指向开源cli程序的链接,我可以选择这些链接来了解一些情况?或者,我可以拿到的书、教程等。我四处寻找,但几乎没有什么成功(我的谷歌技能肯定是缺乏的)。几乎任何python脚本都可以是“命令行程序”。您有什么具体问题?随机提示:
模块适用于解析复杂选项optionparser
- 许多python模块实际上都是cli程序。请参见此处(例如,请参见
,您可以使用python2.6/json/tool.py
运行该工具)python-mjson.tool
def main(arguments):
etc.
if __name__ == '__main__':
# only if we are executed rather than imported as a module:
import sys
main(sys.argv)
这样,您的应用程序的各个部分就可以通过简单的导入
来重复使用。你这样使用它:
% cat my.py
import baker
@baker.command
def cmd(start, end):
print '%s %s' % (start, end)
if __name__ == '__main__':
baker.run()
% python my.py cmd 2010-12-01 2010-12-31
2010-12-01 2010-12-31
如果您可以使用Python 2.7或3,或者期望可以访问的公共环境,请考虑AgPARSE而不是OpTPARSE。它提供了optpass对带有参数的选项的相同控制
我个人并不介意把所有的解析放在if uuuu name uuu=='\uuuu main uuu'
块中,如果它非常简单的话
在您对Falmari回复的评论中,您提到了在使用CLI程序期间广泛的用户交互——对我来说,这已经开始向“面向行的命令解释器”靠拢,如标准库中的或优秀的。在手动解析的
原始输入
不同的行上循环正在复制您可以从其中一个中获得的一些功能。我还想看看您所描述内容的好例子。Optionparser是我大部分代码的入口点。在调用main()以减少浪费的导入之前,我从未考虑过导入。一个例子是curl。它有一系列的选项、标志等。存储这些选项和决定程序流的好方法是什么?就像我有一堆存储的变量,它们执行main()中if-else逻辑的方法一样。或者有一种“标准”来处理这种情况。另一个例子是,假设我有两个数据库,我想从中比较条目。用户将被提示“如果”在做什么方面存在任何差异。他可以保留、删除或更改这些值。问题是,他必须了解差异,必须提供输入,并且输入必须经过验证。这一过程可以变得广泛。那么,你知道我可以从中挑选与本例范围类似的开源程序吗?这些都是非常具体的问题。你应该把你的问题限制在可以回答的范围内。