如何在命令行中仅输入“help”时显示自定义帮助消息?

时间:2016-11-04 15:02:59

标签: python

目前,我的程序通过在终端中的程序名称之后接受两个参数来工作。

即。 python myscript.py file1 file2有效

with open(sys.argv[1], 'r') as a, open(sys.argv[2], 'r') as b:
    while True:
        try: 
    #there are two while loops here, one for each file...

如何更改它,以便在我输入时:

$python myprogram.py help

是否生成了帮助消息(来自我创建的文本文件)?

有一种非常简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您需要检查sys.argv[1]并查看它是否等于“帮助”。

if sys.argv[1] == "help":

在此块中,您可以将帮助文件打印出来给用户。

if sys.argv[1] == "help":
    with open("help_readme.txt", "r") as f:
        print(f.read())

如果sys.argv[1]不等于“帮助”,请继续使用当前逻辑。

另一种方法是使用argparse。当您通过-h

时,它会自动为您生成“帮助”
import argparse

parser = argparse.ArgumentParser(description='Process some files.')
parser.add_argument('file', nargs=2, help="List of two files to process")

args = parser.parse_args()

for f in args.file:
    print(f)   # This shows how to use the file name. You will want your logic here

使用此功能,如果将-h传递给命令行,则会收到如下有用的消息:

usage: test.py [-h] file file

Process some files.

positional arguments:
  file        List of two files to process

optional arguments:
  -h, --help  show this help message and exit

它将接受2个文件名。如果您传递的不是两个值,它将产生适当的响应。