2016-11-04 73 views
0

目前我的程序通過在終端中的程序名稱之後帶入兩個參數來工作。如何在命令行中輸入'help'時顯示自定義幫助信息?

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

比較'sys.argv [1]'到'help'並在這種情況下顯示幫助,而不是運行正常的代碼? – larsks

+1

當然,檢查第一個參數是否是「help」,然後打印一些東西。 –

+1

我建議你使用[argparse](https://docs.python.org/3/library/argparse.html),它會讓你的生活更輕鬆處理參數。 –

回答

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個文件名。如果你通過除兩個值以外的任何其他值,它將產生一個適當的響應。

相關問題