怎么使用PythonPython创建命令?

开发 后端
或许大家遇到过Python创建命令,但您能编写出真正好用的命令行工具吗?本文讨论使用 Python 来创建一个强健的命令行工具。

Python创建命令使其成为一种学习曲线平和的编程语言,有经验的程序员甚至可能在一天之内就掌握Python的基础知识,至多不过一周作用就可以上手,而编程语言的专家则肯定。

并带有内置的帮助菜单、错误处理和选项处理。由于一些奇怪的原因,很多人并不了解 Python® 的标准库具有制作功能极其强大的 *NIX 命令行工具所需的全部工具。 可以这样说,Python 是制作 *NIX 命令行工具的最佳语言,因为它依照“batteries-included”的哲学方式工作,并且强调提供可读性高的代码。

但仅作为提醒,当您发现使用 Python创建命令行工具是一件多么简单的事情时,这些想法很危险,您的生活可能被搅得一团糟。据我所知,至今还没有发表过详细说明使用 Python创建命令行工具的文章。

因此我希望您喜欢这篇文章。Python 标准库中的 optparse 模块可完成创建命令行工具的大部分琐碎工作。optparse 包含在 Python 2.3 中,因此该模块将包括在许多 *NIX 操作系统中。#t#

如果由于某种原因,您使用的操作系统不包含所需要的模块,那么值得庆幸的是,Python 的最新版本已经过测试并编译到几乎任何 *NIX 操作系统中。Python 支持的系统包括 IBM® AIX®、HP-UX、Solaris、Free BSD、Red Hat Linux®、Ubuntu、OS X、IRIX,甚至包括几种 Nokia 手机。

编写优秀的命令行工具的第一步是定义要解决的问题。这对您工具的成功至关重要。这对于以尽可能简单的方法解决问题也同样重要。这里明确地采用了 KISS(Keep It Simple Stupid,保持简单)准则。只有在实现并测试了计划内功能之后才添加选项和增加其他功能。

我们首先从创建 Hello World 命令行工具开始。按照上面的建议,我们使用尽可能简单的术语来定义问题。问题定义:我希望创建一个命令行工具,默认打印 Hello World,并提供用于打印不通人的姓名的选项。 基于上述说明,可以提供一个包含少量代码的解决方案。

Hello World 命令行接口 (CLI):

  1. #!/usr/bin/env python           
  2. import optparse                
  3. def main():       
  4. p = optparse.OptionParser()         
  5. p.add_option('--person', '-p',  
  6.  default="world")         
  7. options, arguments = p.parse_args()           print 'Hello %s' % options.person                    
  8. if __name__ == '__main__':   
  9.  main()  

但是,我们通过少量PPython创建命令所能做到的远不止于此。我们可以获得自动生成的帮助菜单。在这里,我们终于看到了Python中多线程机制的平台相关性,在Python25\Python目录下,有一大批thread_***.h这样的文件,在这些文件中。

包装了不同操作系统的原生线程,并通过统一的接口暴露给Python,比如这里的PyThread_allocate_lock就是这样一个接口。我们这里的thread_nt.h中包装的是Win32平台的原生thread,在本章中后面的代码剖析中,还会有大量与平台相关的代码,我们都以Win32平台为例。

责任编辑:chenqingxiang 来源: 人民邮电出版社
相关推荐

2014-05-12 16:40:13

Linux命令快照

2018-01-15 14:59:35

Linux命令交换分区

2020-09-22 07:29:14

Linux stat

2009-12-23 10:58:58

Linux创建文件命令

2009-12-23 10:58:58

Linux创建文件命令

2019-07-29 10:56:32

Linuxuseradd命令创建用户账号

2022-09-27 13:07:41

clickPython命令行

2010-11-16 11:46:03

oracle命令行

2009-08-04 09:53:21

linux创建文件命令tail命令自解压

2013-12-20 10:20:34

2009-08-04 09:42:09

linux创建文件命令ddlinux

2020-10-10 19:14:09

FlutterApp软件开发

2021-06-10 07:59:40

Linux 系统硬件操作系统

2009-08-04 09:37:34

Linux创建文件命令Linux创建文件命令

2015-04-20 10:06:37

PHP Rust 创建PHP 扩展

2009-04-23 13:19:21

创建XMLXML文件Javascript

2012-05-10 08:55:11

Linuxuniq

2010-02-07 13:52:45

Ubuntu deb

2009-08-03 12:02:13

linux at命令linux at命令详使用案例

2023-04-05 08:33:10

点赞
收藏

51CTO技术栈公众号