Di chuyển mã optparse sang argparse¶
Mô-đun argparse cung cấp một số tính năng cấp cao hơn vốn không được cung cấp bởi mô-đun optparse, bao gồm:
Xử lý các đối số vị trí.
Hỗ trợ các lệnh phụ.
Cho phép tiền tố tùy chọn thay thế như
+và/.Xử lý các đối số kiểu không hoặc nhiều và một hoặc nhiều kiểu.
Tạo ra nhiều thông điệp sử dụng mang tính thông tin hơn.
Cung cấp giao diện đơn giản hơn nhiều cho
typevàactiontùy chỉnh.
Ban đầu, mô-đun argparse cố gắng duy trì khả năng tương thích với optparse. Tuy nhiên, sự khác biệt cơ bản về thiết kế giữa việc hỗ trợ xử lý tùy chọn dòng lệnh khai báo (trong khi để xử lý đối số vị trí cho mã ứng dụng) và việc hỗ trợ cả tùy chọn được đặt tên và đối số vị trí trong giao diện khai báo có nghĩa là API đã khác biệt với optparse theo thời gian.
Như được mô tả trong Chọn thư viện phân tích đối số, các ứng dụng hiện đang sử dụng optparse và hài lòng với cách hoạt động của nó có thể tiếp tục sử dụng optparse.
Các nhà phát triển ứng dụng đang cân nhắc việc di chuyển cũng nên xem lại danh sách những khác biệt nội tại về hành vi được mô tả trong phần đó trước khi quyết định xem việc di chuyển có cần thiết hay không.
Đối với các ứng dụng chọn di chuyển từ optparse sang argparse, những đề xuất sau sẽ hữu ích:
Thay thế tất cả các cuộc gọi
optparse.OptionParser.add_option()bằng các cuộc gọiArgumentParser.add_argument().Thay thế
(options, args) = parser.parse_args()bằngargs = parser.parse_args()và thêm các lệnh gọiArgumentParser.add_argument()bổ sung cho các đối số vị trí. Hãy nhớ rằng cái trước đây được gọi làoptions, bây giờ trong ngữ cảnhargparseđược gọi làargs.Replace
optparse.OptionParser.disable_interspersed_args()by usingparse_intermixed_args()instead ofparse_args().Thay thế các hành động gọi lại và đối số từ khóa
callback_*bằng đối sốtypehoặcaction.Thay thế tên chuỗi cho các đối số từ khóa
typebằng các đối tượng loại tương ứng (ví dụ: int, float, complex, v.v.).Thay thế
optparse.ValuesbằngNamespacevàoptparse.OptionErrorvàoptparse.OptionValueErrorbằngArgumentError.Thay thế các chuỗi bằng các đối số ngầm định như
%defaulthoặc%progbằng cú pháp Python tiêu chuẩn để sử dụng từ điển để định dạng chuỗi, tức là%(default)svà%(prog)s.Thay thế đối số
versioncủa hàm tạo OptionParser bằng lệnh gọiparser.add_argument('--version', action='version', version='<the version>').