2010-09-03 28 views
13

Hiện tại khi tôi nhập các tùy chọn không hợp lệ hoặc bỏ qua các đối số vị trí, argparse sẽ đưa tôi trở lại lời nhắc và hiển thị mức sử dụng cho ứng dụng của tôi. Điều này là ok, nhưng tôi thà tự động hiển thị danh sách trợ giúp đầy đủ (giải thích các tùy chọn, v.v) so với yêu cầu người dùng nhậppython argparse: Làm thế nào tôi có thể hiển thị trợ giúp tự động do lỗi?

./myscript.py -h

Cảm ơn!

Jamie

+0

cũng thấy điều này SO câu hỏi để biết thêm: [http://stackoverflow.com/questions/4042452][1] [1]: http://stackoverflow.com/questions/4042452 – jpoppe

Trả lời

13

thread này qua tại nhóm Google đã có đoạn mã sau đó dường như làm các trick (sửa đổi đôi chút).

class DefaultHelpParser(argparse.ArgumentParser): 
    def error(self, message): 
     sys.stderr.write('error: %s\n' % message) 
     self.print_help() 
     sys.exit(2) 
+3

Sẽ không có ý nghĩa khi sử dụng 'self.print_help (sys.stderr)' ở đây? –

20

Để in giúp bạn có thể muốn sử dụng: print_help chức năng trên ArgumentParser dụ

parser = argparse.ArgumentParser() 
(...) 
parser.print_help() 

Để in thông báo trợ giúp về lỗi bạn cần tạo lớp con riêng của ArgumentParser dụ, đó sẽ ghi đè error() phương pháp. Ví dụ như:

class MyParser(argparse.ArgumentParser): 
    def error(self, message): 
     sys.stderr.write('error: %s\n' % message) 
     self.print_help() 
     sys.exit(2) 

Khi trình phân tích cú pháp này gặp dòng đối số không thể bỏ qua, nó sẽ in trợ giúp.

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