使用Python编写命令行程序的时候,我们需要使用第三方库来实现。下面是可供参考的几个常用的Python库:
-
argparse:argparse是Python内置的标准模块,提供了非常方便和简单的命令行解析方法。具体使用方法可见下面的示例1。
-
docopt:docopt 是一个使用 docstring 来解析命令行参数的库。它非常简单,不需要引用冗长的文档来设置参数,自动解析参数,并为用户提供默认的命令行帮助。具体使用方法可见下面的示例2。
以下是两个示例:
示例1:使用 argparse 库实现一个简单的加法器程序
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Add two numbers')
parser.add_argument('first_num', type=int, help='First number')
parser.add_argument('second_num', type=int, help='Second number')
args = parser.parse_args()
print(args.first_num + args.second_num)
使用方式:首先将以上代码保存成文件 add.py , 打开命令行,定位到代码所在的目录下,执行以下命令:
python add.py 5 10
输出结果:
15
示例2:使用 docopt 库实现一个命令行计算器
"""
Usage:
calculator.py add <num1> <num2>
calculator.py subtract <num1> <num2>
calculator.py multiply <num1> <num2>
calculator.py divide <num1> <num2>
Options:
-h --help Show this screen.
--version Show version.
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__, version='0.0.1')
num1 = float(arguments['<num1>'])
num2 = float(arguments['<num2>'])
if arguments['add']:
print(num1 + num2)
elif arguments['subtract']:
print(num1 - num2)
elif arguments['multiply']:
print(num1 * num2)
elif arguments['divide']:
print(num1 / num2)
使用方式:首先将以上代码保存成文件 calculator.py , 打开命令行,定位到代码所在的目录下,执行以下命令:
python calculator.py add 2 3
输出结果:
5.0
以上是两个示例,其中 argparse 和 docopt 都是非常实用的 Python 库,对于不同的编程需求,要适当选择正确的库来处理命令行参数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用什么库写 Python 命令行程序(示例代码详解) - Python技术站