Tôi sử dụng thư viện xuất sắc Python Click để xử lý các tùy chọn dòng lệnh trong công cụ của tôi. Dưới đây là một phiên bản đơn giản hóa của mã của tôi (full script here):Python Nhấp vào: thông báo lỗi tùy chỉnh
@click.command(
context_settings = dict(help_option_names = ['-h', '--help'])
)
@click.argument('analysis_dir',
type = click.Path(exists=True),
nargs = -1,
required = True,
metavar = "<analysis directory>"
)
def mytool(analysis_dir):
""" Do stuff """
if __name__ == "__main__":
mytool()
Nếu ai đó chạy lệnh mà không cần bất kỳ cờ, họ nhận được thông báo mặc định lỗi nhấp chuột:
$ mytool
Usage: mytool [OPTIONS] <analysis directory>
Error: Missing argument "analysis_dir".
này là tốt đẹp, nhưng tôi Tôi rất muốn nói (rất) người dùng mới làm quen có thêm trợ giúp bằng cách sử dụng cờ trợ giúp. Nói cách khác, thêm một câu tùy chỉnh vào thông báo lỗi khi lệnh không hợp lệ yêu cầu mọi người thử dùng mytool --help
để biết thêm thông tin.
Có cách nào dễ dàng để thực hiện việc này không? Tôi biết tôi có thể loại bỏ các thuộc tính required
và xử lý logic này trong chức năng chính, nhưng điều đó cảm thấy loại hacky cho một bổ sung nhỏ như vậy.
Tôi gặp vấn đề tương tự. Tôi muốn tự động in ra trợ giúp nếu xảy ra lỗi hoặc ít nhất hãy cho người dùng biết cách in trợ giúp. Nếu không, chúng ta phải giả định rằng mọi người sử dụng công cụ của chúng tôi đều quen thuộc với tư duy dựa trên unix. Tôi thích bấm cho đến nay nhưng tôi chán nản rằng câu hỏi này chưa được trả lời, bởi vì tôi muốn một cái gì đó sẽ giúp xây dựng các công cụ mà người mới có thể dễ dàng sử dụng. – user1677663
Chỉ tìm thấy điều này, có thể là một giải pháp: http://stackoverflow.com/questions/35642202/python-click-return-the-helper-menu – user1677663
Không, điều đó không hiệu quả. – user1677663