2012-01-27 30 views
15

Tôi đang cố gắng làm cho tập lệnh python của tôi rất thân thiện với người dùng, vì vậy tôi muốn viết một số loại trợ giúp cho nó. Lời khuyên của bạn cho điều này là gì? Tôi chỉ có thể đưa vào một số logic rằng nếu người dùng thông qua sự giúp đỡ như là một paramater cho kịch bản, họ nhận được sự giúp đỡ. Có một thực hành hay quy ước tốt nhất cho điều này?Viết trợ giúp cho tập lệnh python

Trả lời

26

Sử dụng argparse.

Ví dụ, với test.py:

import argparse 

parser=argparse.ArgumentParser(
    description='''My Description. And what a lovely description it is. ''', 
    epilog="""All's well that ends well.""") 
parser.add_argument('--foo', type=int, default=42, help='FOO!') 
parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!') 
args=parser.parse_args() 

Chạy

% test.py -h 

mang

usage: test.py [-h] [--foo FOO] [bar [bar ...]] 

My Description. And what a lovely description it is. 

positional arguments: 
    bar   BAR! 

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

All's well that ends well. 
6

Thực hành tốt nhất là sử dụng argparse để xử lý tất cả các đối số dòng lệnh của bạn. Nó bao gồm một mặc định --help mà bạn có thể tùy chỉnh theo ý thích của bạn.

Dưới đây là ví dụ đơn giản:

import argparse 

parser = argparse.ArgumentParser(description='This is my help') 

args = parser.parse_args() 

mà kết quả trong:

% python argparse_test.py -h 
usage: argparse_test.py [-h] 

This is my help 

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

Bạn có thể xác định tất cả các đối của bạn với argparse và thiết lập thông báo trợ giúp cho mỗi một trong số họ. Các đối số đã lọc/được xác thực được trả về bởi parser.parse_args().

Các vấn đề liên quan