Python 命令行界面编程指南

这篇文章将探讨如何为 Python 程序创建命令行界面(CLI),我们将通过一个构建基础“文本文件管理器”的实例来进行讲解。

在此之前,让我们先讨论一些基础知识。

什么是命令行界面(CLI)?

命令行界面或命令语言解释器(CLI),也称为命令行用户界面、控制台用户界面和字符用户界面(CUI),是一种与计算机程序交互的方式,用户(或客户端)以连续文本行(命令行)的形式向程序发出命令。(Wiki)

CLI 的优势:

  • 所需资源更少
  • 简洁且功能强大
  • 受专家欢迎
  • 更容易通过脚本进行自动化

为什么要在 Python 程序中使用 CLI?

  • 即使只是为你的程序配备一个非常基础的命令行界面(CLI),也能让每个人在修改参数时变得更轻松,这既包括程序员,也包括非程序员。
  • 为程序配置 CLI 可以让你更轻松地自动化运行和修改程序内的变量,例如当你想要通过 cron 作业或 os.system 调用来运行程序时。

现在,让我们开始制作我们的“文本文件管理器”。在这里,我们将使用一个名为 Argparse 的 Python 内置库。

关于 Argparse:

  • 它使得编写用户友好的命令行界面变得轻而易举。
  • 程序定义了它所需的参数,argparse 会自动解析 sys.argv 中的内容。
  • argparse 模块还会自动生成帮助和使用说明信息,并在用户给出无效参数时发出错误提示。

好的,让我们先从一个非常基础的程序开始,以此感受一下 argparse 的作用。

Python


CODEBLOCK_43be4db5

让我们梳理一下与上述程序相关的一些要点:

  • 首先,我们导入了 argparse 模块。
  • 然后,创建了一个 ArgumentParser 对象,并为我们的程序提供了描述信息。
  • 现在,我们可以通过添加参数来充实解析器对象的信息。在这个例子中,我们创建了一个参数 add 许多参数可以传递给 add_argument 函数。在这里,我解释一下我在上面例子中用到的那些:

参数 1: ("add") 这只是参数的名称。我们将通过输入 args.add 来使用这个名称访问 add 参数。
参数 2: (nargs = ‘‘) 应该被使用的命令行参数的数量。将其指定为 ‘‘ 意味着它可以是任意数量的参数,即从 0 到无穷。
参数 3: (metavar = ‘num‘) 参数在使用信息中的名称。
参数 4: (type = int) 命令行参数应被转换成的类型。默认情况下它是 str。
参数 5: (help) 关于参数作用的简要描述。

  • 一旦我们指定了所有参数,就是时候从标准命令行输入流解析这些参数了。为此,我们使用 parse_args() 函数。
  • 现在,可以简单地检查输入是否调用了特定的参数。在这里,我们检查 args.add 的长度以查看是否从输入中接收到了任何数据。请注意,参数的值是作为列表获取的。
  • 参数有两种类型:位置参数 和可选参数。

位置参数是那些不需要任何说明即可调用的参数。而可选参数需要先指定它们的名称(以 ‘–‘ 开头,‘-‘ 也是简写形式。)

  • 总是可以使用 –help 或 -h 可选参数来查看帮助信息。

这里有一个例子(Python 脚本已保存为 add.py):

!2

  • 现在,让我们看看另一个例子,其中我们的位置参数 add 被调用了。

!image

  • 还有一个值得特别提及的功能是,当用户给程序提供无效参数时,argparse 如何发出错误。

!image

所以,这是一个基础的例子,以便你能熟悉 argparse 和 CLI 的概念。现在,让我们继续进行我们的 “文本文件管理器” 程序。

Python


“python

导入必要的模块

import os

import argparse

错误信息

INVALIDFILETYPEMSG = "Error: Invalid file format. %s mus

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/42916.html
点赞
0.00 平均评分 (0% 分数) - 0