Hướng dẫn python flag arguments - đối số cờ python
Mới trong phiên bản 3.2. Show
Mã nguồn: lib/argparse.py Lib/argparse.py Mô-đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 giúp dễ dàng viết các giao diện dòng lệnh thân thiện với người dùng. Chương trình xác định những đối số mà nó yêu cầu và parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 sẽ tìm ra cách phân tích các đối số của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag03. Mô -đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 cũng tự động tạo thông báo trợ giúp và sử dụng. Mô -đun cũng sẽ phát hành lỗi khi người dùng đưa ra các đối số không hợp lệ. Chức năng cốt lõi¶Mô-đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 Hỗ trợ hỗ trợ cho các giao diện dòng lệnh được xây dựng xung quanh một thể hiện là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag06. Nó là một thùng chứa cho các thông số kỹ thuật đối số và có các tùy chọn áp dụng toàn bộ trình phân tích cú pháp: parser = argparse.ArgumentParser( prog = 'ProgramName', description = 'What the program does', epilog = 'Text at the bottom of help') Phương pháp parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag07 gắn các thông số kỹ thuật đối số riêng lẻ vào trình phân tích cú pháp. Nó hỗ trợ các đối số vị trí, các tùy chọn chấp nhận các giá trị và cờ bật/tắt: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag Phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag08 chạy trình phân tích cú pháp và đặt dữ liệu được trích xuất vào đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag09: args = parser.parse_args() print(args.filename, args.count, args.verbose) Liên kết nhanh cho add_argument ()
Thí dụ¶Mã sau đây là một chương trình Python lấy một danh sách các số nguyên và tạo ra tổng hoặc tối đa: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers)) Giả sử mã Python ở trên được lưu vào một tệp có tên parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag32, nó có thể được chạy ở dòng lệnh và nó cung cấp các thông báo trợ giúp hữu ích: $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max) Khi chạy với các đối số thích hợp, nó in tổng hoặc tối đa của số nguyên dòng lệnh: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 10 Nếu các đối số không hợp lệ được truyền vào, một lỗi sẽ được hiển thị: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a' Các phần sau đây hướng dẫn bạn qua ví dụ này. Tạo trình phân tích cú phápBước đầu tiên trong việc sử dụng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 là tạo đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34: >>> parser = argparse.ArgumentParser(description='Process some integers.') Đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 sẽ chứa tất cả thông tin cần thiết để phân tích dòng lệnh vào các loại dữ liệu Python. Thêm đối sốViệc điền vào parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 với thông tin về các đối số chương trình được thực hiện bằng cách thực hiện các cuộc gọi đến phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37. Nói chung, các cuộc gọi này cho biết parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 làm thế nào để lấy các chuỗi trên dòng lệnh và biến chúng thành các đối tượng. Thông tin này được lưu trữ và sử dụng khi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 được gọi. Ví dụ: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)') Sau đó, gọi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 sẽ trả về một đối tượng với hai thuộc tính, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag41 và parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag42. Thuộc tính parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag41 sẽ là danh sách một hoặc nhiều số nguyên và thuộc tính parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag42 sẽ là hàm parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag45, nếu parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag46 được chỉ định tại dòng lệnh hoặc hàm parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag47 nếu không. Phân tích đối sốparser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Đối số phân tích cú pháp thông qua phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39. Điều này sẽ kiểm tra dòng lệnh, chuyển đổi từng đối số thành loại thích hợp và sau đó gọi hành động thích hợp. Trong hầu hết các trường hợp, điều này có nghĩa là một đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag50 đơn giản sẽ được xây dựng từ các thuộc tính được phân tích từ dòng lệnh: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate= Trong một tập lệnh, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 thường sẽ được gọi mà không có đối số và parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 sẽ tự động xác định các đối số dòng lệnh từ parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag03. Đối tượng ArbutionParserclassArgParse.ArgumentParser (prog = none, use = none, description = none, epilog = none, cha mẹ = [], formatter_class = argparse.helpformatter, prefix_chars = '-', fromfile_prefix_chars , add_help = true, allow_abbrev = true, exit_on_error = true) ¶ argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)¶Tạo một đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 mới. Tất cả các tham số nên được truyền làm đối số từ khóa. Mỗi tham số có mô tả chi tiết hơn dưới đây, nhưng tóm lại chúng là:
Đã thay đổi trong phiên bản 3.5: Tham số allow_abbrev đã được thêm vào.allow_abbrev parameter was added. Đã thay đổi trong phiên bản 3.8: Trong các phiên bản trước, allow_abbrev cũng vô hiệu hóa nhóm các cờ ngắn như parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag63 to mean parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag64. Đã thay đổi trong phiên bản 3.9: tham số EXIT_ON_ERROR đã được thêm vào.exit_on_error parameter was added. Các phần sau đây mô tả cách mỗi trong số này được sử dụng. ăn xin¶Theo mặc định, các đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 sử dụng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag66 để xác định cách hiển thị tên của chương trình trong các thông báo trợ giúp. Mặc định này hầu như luôn luôn mong muốn vì nó sẽ làm cho các thông báo trợ giúp khớp với cách chương trình được gọi trên dòng lệnh. Ví dụ: hãy xem xét một tệp có tên parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag67 với mã sau: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag0 Sự trợ giúp cho chương trình này sẽ hiển thị parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag67 dưới dạng tên chương trình (bất kể chương trình được gọi từ đâu): parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag1 Để thay đổi hành vi mặc định này, một giá trị khác có thể được cung cấp bằng đối số parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag69 thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag2 Lưu ý rằng tên chương trình, cho dù được xác định từ parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag66 hoặc từ đối số parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag69, có sẵn để trợ giúp tin nhắn bằng trình xác định định dạng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag73. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag3 cách sử dụng¶Theo mặc định, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Tính toán thông báo sử dụng từ các đối số mà nó chứa: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag4 Thông báo mặc định có thể được ghi đè với đối số từ khóa parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag75: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag5 Bộ xác định định dạng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag73 có sẵn để điền tên chương trình trong các thông báo sử dụng của bạn. sự mô tả¶Hầu hết các cuộc gọi đến trình xây dựng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 sẽ sử dụng đối số từ khóa parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag78. Lập luận này đưa ra một mô tả ngắn gọn về những gì chương trình làm và cách thức hoạt động. Trong các thông báo trợ giúp, mô tả được hiển thị giữa chuỗi sử dụng dòng lệnh và các thông báo trợ giúp cho các đối số khác nhau: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag6 Theo mặc định, mô tả sẽ được bọc dòng để nó phù hợp với không gian đã cho. Để thay đổi hành vi này, hãy xem đối số Formatter_Class. EpilognMột số chương trình muốn hiển thị mô tả bổ sung của chương trình sau khi mô tả các đối số. Văn bản như vậy có thể được chỉ định bằng đối số parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag79 thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag7 Như với đối số mô tả, văn bản parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag79 được bao bọc theo dòng mặc định, nhưng hành vi này có thể được điều chỉnh bằng đối số formatter_ class thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34. cha mẹ¶Đôi khi, một số trình phân tích cú pháp chia sẻ một bộ đối số chung. Thay vì lặp lại các định nghĩa của các đối số này, một trình phân tích cú pháp duy nhất với tất cả các đối số được chia sẻ và có thể sử dụng đối số parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag83 cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34. Đối số parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag83 lấy một danh sách các đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34, thu thập tất cả các hành động vị trí và tùy chọn từ chúng và thêm các hành động này vào đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 được xây dựng: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag8 Lưu ý rằng hầu hết các trình phân tích cú pháp cha sẽ chỉ định parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag88. Mặt khác, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 sẽ thấy hai tùy chọn parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag59 (một trong cha mẹ và một trong trẻ) và gây ra lỗi. Ghi chú Bạn phải khởi tạo hoàn toàn các trình phân tích cú pháp trước khi chuyển chúng qua parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag83. Nếu bạn thay đổi trình phân tích cú pháp cha mẹ sau khi trình phân tích cú pháp con, những thay đổi đó sẽ không được phản ánh ở trẻ. formatter_ class¶¶parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Các đối tượng cho phép định dạng trợ giúp được tùy chỉnh bằng cách chỉ định một lớp định dạng thay thế. Hiện tại, có bốn lớp như vậy: classargparse.rawdescriphelpformatter¶ classargparse.rawtexthelpformatter¶ classargparse.argumentdefaultshelpformatterrargparse.RawDescriptionHelpFormatter¶ class argparse.RawTextHelpFormatter¶ class argparse.ArgumentDefaultsHelpFormatter¶ class argparse.MetavarTypeHelpFormatter¶ parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag93 và parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag94 Cung cấp nhiều quyền kiểm soát hơn về cách mô tả văn bản được hiển thị. Theo mặc định, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Đối tượng đã bao bọc dòng mô tả và văn bản Epilog trong các thông báo trợ giúp dòng lệnh: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag9 Vượt qua parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag93 như parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag97 chỉ ra rằng mô tả và epilog đã được định dạng chính xác và không nên được bọc dòng: args = parser.parse_args() print(args.filename, args.count, args.verbose)0 parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag94 duy trì khoảng trắng cho tất cả các loại văn bản trợ giúp, bao gồm các mô tả đối số. Tuy nhiên, nhiều dòng mới được thay thế bằng một. Nếu bạn muốn bảo quản nhiều dòng trống, hãy thêm khoảng trống giữa các dòng mới. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag99 Tự động thêm thông tin về các giá trị mặc định vào từng thông báo trợ giúp đối số: args = parser.parse_args() print(args.filename, args.count, args.verbose)1 args = parser.parse_args() print(args.filename, args.count, args.verbose)00 sử dụng tên của đối số loại cho mỗi đối số làm tên hiển thị cho các giá trị của nó (thay vì sử dụng định mệnh như định dạng thông thường): args = parser.parse_args() print(args.filename, args.count, args.verbose)2 prefix_chars¶Hầu hết các tùy chọn dòng lệnh sẽ sử dụng args = parser.parse_args() print(args.filename, args.count, args.verbose)01 làm tiền tố, ví dụ: args = parser.parse_args() print(args.filename, args.count, args.verbose)02. Các trình phân tích cú pháp cần hỗ trợ các ký tự tiền tố khác nhau hoặc bổ sung, ví dụ: Đối với các tùy chọn như args = parser.parse_args() print(args.filename, args.count, args.verbose)03 hoặc args = parser.parse_args() print(args.filename, args.count, args.verbose)04, có thể chỉ định chúng bằng đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)05 cho Trình xây dựng ArmparParser: args = parser.parse_args() print(args.filename, args.count, args.verbose)3 Đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)05 mặc định là args = parser.parse_args() print(args.filename, args.count, args.verbose)07. Việc cung cấp một tập hợp các ký tự không bao gồm args = parser.parse_args() print(args.filename, args.count, args.verbose)01 sẽ khiến các tùy chọn args = parser.parse_args() print(args.filename, args.count, args.verbose)02 không được phép. Fromfile_prefix_chars¶Đôi khi, khi xử lý một danh sách đối số đặc biệt dài, có thể có ý nghĩa để giữ danh sách các đối số trong một tệp thay vì gõ nó vào dòng lệnh. Nếu đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)10 được đưa ra cho hàm tạo parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34, thì các đối số bắt đầu với bất kỳ ký tự được chỉ định nào sẽ được coi là tệp và sẽ được thay thế bằng các đối số mà chúng chứa. Ví dụ: args = parser.parse_args() print(args.filename, args.count, args.verbose)4 Các đối số được đọc từ một tệp theo mặc định là một dòng trên mỗi dòng (nhưng xem thêm args = parser.parse_args() print(args.filename, args.count, args.verbose)12) và được xử lý như thể chúng ở cùng một nơi với đối số tham chiếu tệp gốc trên dòng lệnh. Vì vậy, trong ví dụ trên, biểu thức args = parser.parse_args() print(args.filename, args.count, args.verbose)13 được coi là tương đương với biểu thức args = parser.parse_args() print(args.filename, args.count, args.verbose)14. Đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)10 mặc định là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag21, có nghĩa là các đối số sẽ không bao giờ được coi là tham chiếu tệp. arging_default¶Nói chung, các mặc định đối số được chỉ định bằng cách chuyển một mặc định cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 hoặc bằng cách gọi các phương thức args = parser.parse_args() print(args.filename, args.count, args.verbose)18 với một tập hợp các cặp giá trị tên cụ thể. Tuy nhiên, đôi khi, có thể hữu ích khi chỉ định một mặc định toàn trình phân tích cú pháp cho các đối số. Điều này có thể được thực hiện bằng cách chuyển đối số từ khóa args = parser.parse_args() print(args.filename, args.count, args.verbose)19 cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34. Ví dụ: để triệt tiêu toàn cầu tạo thuộc tính trên các cuộc gọi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39, chúng tôi cung cấp args = parser.parse_args() print(args.filename, args.count, args.verbose)22: args = parser.parse_args() print(args.filename, args.count, args.verbose)5 cho phép_abbrev¶Thông thường, khi bạn chuyển một danh sách đối số cho phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34, nó sẽ nhận ra chữ viết tắt của các tùy chọn dài.recognizes abbreviations of long options. Tính năng này có thể bị tắt bằng cách đặt args = parser.parse_args() print(args.filename, args.count, args.verbose)25 thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28: args = parser.parse_args() print(args.filename, args.count, args.verbose)6 Mới trong phiên bản 3.5. xung đột_handler¶parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Đối tượng không cho phép hai hành động có cùng chuỗi tùy chọn. Theo mặc định, các đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 nêu ra một ngoại lệ nếu một nỗ lực được thực hiện để tạo đối số với một chuỗi tùy chọn đã được sử dụng: args = parser.parse_args() print(args.filename, args.count, args.verbose)7 Đôi khi (ví dụ: khi sử dụng cha mẹ), có thể hữu ích khi chỉ cần ghi đè bất kỳ đối số cũ nào với cùng một chuỗi tùy chọn. Để có được hành vi này, giá trị args = parser.parse_args() print(args.filename, args.count, args.verbose)29 có thể được cung cấp cho đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)30 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34: args = parser.parse_args() print(args.filename, args.count, args.verbose)8 Lưu ý rằng các đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 chỉ xóa một hành động nếu tất cả các chuỗi tùy chọn của nó bị ghi đè. Vì vậy, trong ví dụ trên, hành động args = parser.parse_args() print(args.filename, args.count, args.verbose)02 cũ được giữ lại dưới dạng hành động args = parser.parse_args() print(args.filename, args.count, args.verbose)34, bởi vì chỉ chuỗi tùy chọn args = parser.parse_args() print(args.filename, args.count, args.verbose)35 đã được ghi đè. add_help¶Theo mặc định, các đối tượng ArgentParSer thêm một tùy chọn chỉ hiển thị thông báo trợ giúp của trình phân tích cú pháp. Ví dụ: hãy xem xét một tệp có tên parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag67 chứa mã sau: parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag0 Nếu args = parser.parse_args() print(args.filename, args.count, args.verbose)37 hoặc args = parser.parse_args() print(args.filename, args.count, args.verbose)38 được cung cấp tại dòng lệnh, Trợ giúp của ArbutionParser sẽ được in: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))0 Đôi khi, nó có thể hữu ích để vô hiệu hóa việc bổ sung tùy chọn trợ giúp này. Điều này có thể đạt được bằng cách chuyển parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28 dưới dạng đối số args = parser.parse_args() print(args.filename, args.count, args.verbose)40 cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))1 Tùy chọn trợ giúp thường là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag59. Ngoại lệ cho điều này là nếu args = parser.parse_args() print(args.filename, args.count, args.verbose)05 được chỉ định và không bao gồm args = parser.parse_args() print(args.filename, args.count, args.verbose)01, trong trường hợp đó args = parser.parse_args() print(args.filename, args.count, args.verbose)37 và args = parser.parse_args() print(args.filename, args.count, args.verbose)38 không phải là các tùy chọn hợp lệ. Trong trường hợp này, ký tự đầu tiên trong args = parser.parse_args() print(args.filename, args.count, args.verbose)47 được sử dụng để tiền tố các tùy chọn trợ giúp: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))2 exit_on_error¶Thông thường, khi bạn chuyển một danh sách đối số không hợp lệ cho phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34, nó sẽ thoát với thông tin lỗi. Nếu người dùng muốn bắt lỗi theo cách thủ công, tính năng này có thể được bật bằng cách đặt args = parser.parse_args() print(args.filename, args.count, args.verbose)50 thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))3 Mới trong phiên bản 3.9. Phương thức add_argument ()ArcharchParser.add_argument (nameorflags ... [, hành động] [, nargs] [, const] [, mặc định] [, loại] [, lựa chọn] [, yêu cầu] [, trợ giúp]add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])¶Xác định cách một đối số dòng lệnh duy nhất nên được phân tích cú pháp. Mỗi tham số có mô tả chi tiết hơn dưới đây, nhưng tóm lại chúng là:
Các phần sau đây mô tả cách mỗi trong số này được sử dụng. Tên hoặc CờPhương pháp parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 phải biết liệu một đối số tùy chọn, như args = parser.parse_args() print(args.filename, args.count, args.verbose)34 hay args = parser.parse_args() print(args.filename, args.count, args.verbose)35 hay đối số vị trí, như một danh sách các tên tệp, được mong đợi. Do đó, các đối số đầu tiên được chuyển cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 phải là một loạt các cờ hoặc một tên đối số đơn giản. Ví dụ, một đối số tùy chọn có thể được tạo như: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))4 Trong khi một đối số vị trí có thể được tạo như: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))5 Khi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 được gọi, các đối số tùy chọn sẽ được xác định bởi tiền tố args = parser.parse_args() print(args.filename, args.count, args.verbose)01 và các đối số còn lại sẽ được coi là vị trí: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))6 hoạt động¶parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Đối tượng liên kết các đối số dòng lệnh với các hành động. Những hành động này có thể thực hiện bất cứ điều gì với các đối số dòng lệnh được liên kết với chúng, mặc dù hầu hết các hành động chỉ đơn giản là thêm một thuộc tính vào đối tượng được trả về bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39. Đối số từ khóa args = parser.parse_args() print(args.filename, args.count, args.verbose)63 Chỉ định cách xử lý các đối số dòng lệnh. Các hành động được cung cấp là:
Bạn cũng có thể chỉ định một hành động tùy ý bằng cách chuyển một lớp con hành động hoặc đối tượng khác thực hiện cùng một giao diện. args = parser.parse_args() print(args.filename, args.count, args.verbose)87 có sẵn trong parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 và thêm hỗ trợ cho các hành động Boolean như args = parser.parse_args() print(args.filename, args.count, args.verbose)35 và args = parser.parse_args() print(args.filename, args.count, args.verbose)90: $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)5 Mới trong phiên bản 3.9. Cách được đề xuất để tạo hành động tùy chỉnh là mở rộng args = parser.parse_args() print(args.filename, args.count, args.verbose)91, ghi đè phương thức args = parser.parse_args() print(args.filename, args.count, args.verbose)92 và tùy chọn các phương thức args = parser.parse_args() print(args.filename, args.count, args.verbose)93 và args = parser.parse_args() print(args.filename, args.count, args.verbose)94. Một ví dụ về một hành động tùy chỉnh: $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)6 Để biết thêm chi tiết, xem args = parser.parse_args() print(args.filename, args.count, args.verbose)91. nargs¶Các đối tượng của ArgumpParser thường liên kết một đối số dòng lệnh duy nhất với một hành động duy nhất được thực hiện. Đối số từ khóa args = parser.parse_args() print(args.filename, args.count, args.verbose)96 liên kết một số lượng đối số dòng lệnh khác nhau với một hành động duy nhất. Các giá trị được hỗ trợ là:
Nếu đối số từ khóa args = parser.parse_args() print(args.filename, args.count, args.verbose)96 không được cung cấp, số lượng đối số được tiêu thụ được xác định bởi hành động. Nói chung, điều này có nghĩa là một đối số dòng lệnh duy nhất sẽ được tiêu thụ và một mục duy nhất (không phải danh sách) sẽ được tạo ra. hăng sô¶Đối số import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))08 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 được sử dụng để giữ các giá trị không đổi không được đọc từ dòng lệnh nhưng được yêu cầu cho các hành động parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 khác nhau. Hai cách sử dụng phổ biến nhất của nó là:
Đã thay đổi trong phiên bản 3.11: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))25 by default, including when import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))13 or import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))12. mặc định¶Tất cả các đối số tùy chọn và một số đối số vị trí có thể được bỏ qua tại dòng lệnh. Đối số từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))28 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37, có giá trị mặc định là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag21, chỉ định giá trị nào nên được sử dụng nếu không có đối số dòng lệnh. Đối với các đối số tùy chọn, giá trị import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))28 được sử dụng khi chuỗi tùy chọn không có ở dòng lệnh: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 102 Nếu không gian tên đích đã có một bộ thuộc tính, mặc định hành động sẽ không ghi được quá nhiều: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 103 Nếu giá trị import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))28 là một chuỗi, trình phân tích cú pháp phân tích giá trị như thể nó là đối số dòng lệnh. Cụ thể, trình phân tích cú pháp áp dụng bất kỳ đối số chuyển đổi loại nào, nếu được cung cấp, trước khi đặt thuộc tính trên giá trị trả về parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag50. Mặt khác, trình phân tích cú pháp sử dụng giá trị như là: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 104 Đối với các đối số vị trí với NARG bằng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))34 hoặc import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))35, giá trị import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))28 được sử dụng khi không có đối số dòng lệnh nào: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 105 Cung cấp import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))37 khiến không có thuộc tính nào được thêm vào nếu đối số dòng lệnh không có mặt: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 106 loại hình¶Theo mặc định, trình phân tích cú pháp đọc các đối số dòng lệnh trong các chuỗi đơn giản. Tuy nhiên, khá thường thì chuỗi dòng lệnh thay vào đó nên được hiểu là một loại khác, chẳng hạn như parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag30 hoặc parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag22. Từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))40 cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 cho phép thực hiện mọi chuyển đổi kiểm tra loại và kiểm tra loại cần thiết. Nếu từ khóa loại được sử dụng với từ khóa mặc định, bộ chuyển đổi loại chỉ được áp dụng nếu mặc định là một chuỗi. Đối số của import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))40 có thể là bất kỳ cuộc gọi nào có thể gọi được chấp nhận một chuỗi. Nếu hàm tăng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))43, import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))44 hoặc import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))45, ngoại lệ sẽ bị bắt và thông báo lỗi được định dạng độc đáo được hiển thị. Không có loại ngoại lệ khác được xử lý. Các loại và chức năng tích hợp phổ biến có thể được sử dụng làm bộ chuyển đổi loại: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 107 Các chức năng do người dùng xác định cũng có thể được sử dụng: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 108 Hàm import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))46 không được khuyến nghị làm bộ chuyển đổi loại. Tất cả những gì nó làm là chuyển đổi các chuỗi trống thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28 và các chuỗi không trống thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag27. Đây thường không phải là những gì mong muốn. Nói chung, từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))40 là một sự tiện lợi chỉ nên được sử dụng cho các chuyển đổi đơn giản chỉ có thể tăng một trong ba ngoại lệ được hỗ trợ. Bất cứ điều gì có xử lý lỗi hoặc quản lý tài nguyên thú vị hơn nên được thực hiện ở hạ lưu sau khi các đối số được phân tích cú pháp. Ví dụ: chuyển đổi JSON hoặc YAML có các trường hợp lỗi phức tạp yêu cầu báo cáo tốt hơn so với từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))40. Một import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))51 sẽ không được định dạng tốt và ngoại lệ import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))52 sẽ không được xử lý. Ngay cả import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))53 cũng có những hạn chế để sử dụng với từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))40. Nếu một đối số sử dụng FileType và sau đó một đối số tiếp theo không thành công, một lỗi được báo cáo nhưng tệp không được tự động đóng. Trong trường hợp này, sẽ tốt hơn để đợi cho đến khi trình phân tích cú pháp đã chạy và sau đó sử dụng ________ 355-statement để quản lý các tệp. Đối với trình kiểm tra loại chỉ cần kiểm tra đối với một tập hợp các giá trị cố định, hãy xem xét sử dụng từ khóa lựa chọn thay thế. Lựa chọn lorMột số đối số dòng lệnh nên được chọn từ một tập hợp các giá trị bị hạn chế. Chúng có thể được xử lý bằng cách chuyển một đối tượng container làm đối số từ khóa lựa chọn cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37. Khi dòng lệnh được phân tích cú pháp, các giá trị đối số sẽ được kiểm tra và thông báo lỗi sẽ được hiển thị nếu đối số không phải là một trong những giá trị chấp nhận được: $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 109 Lưu ý rằng việc đưa vào thùng chứa lựa chọn được kiểm tra sau khi bất kỳ chuyển đổi loại nào đã được thực hiện, do đó, loại đối tượng trong thùng chứa lựa chọn phải khớp với loại được chỉ định: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'0 Bất kỳ container nào cũng có thể được truyền dưới dạng giá trị lựa chọn, do đó, các đối tượng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))57, đối tượng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))58 và các thùng chứa tùy chỉnh đều được hỗ trợ. Việc sử dụng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))59 không được khuyến nghị vì rất khó kiểm soát sự xuất hiện của nó trong việc sử dụng, trợ giúp và thông báo lỗi. Các lựa chọn được định dạng ghi đè Metavar mặc định thường có nguồn gốc từ Dest. Đây thường là những gì bạn muốn vì người dùng không bao giờ nhìn thấy tham số Dests. Nếu màn hình này không phải là mong muốn (có lẽ vì có nhiều lựa chọn), chỉ cần chỉ định một Metavar rõ ràng. yêu cầu¶Nói chung, mô -đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 giả định rằng các cờ như args = parser.parse_args() print(args.filename, args.count, args.verbose)34 và import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))62 chỉ ra các đối số tùy chọn, luôn có thể được bỏ qua ở dòng lệnh. Để thực hiện một tùy chọn yêu cầu, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag27 có thể được chỉ định cho đối số từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))64 thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'1 Như ví dụ cho thấy, nếu một tùy chọn được đánh dấu là import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))66, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 sẽ báo cáo lỗi nếu tùy chọn đó không có ở dòng lệnh. Ghi chú Các tùy chọn cần thiết thường được coi là hình thức xấu vì người dùng mong đợi các tùy chọn là tùy chọn và do đó chúng nên tránh khi có thể. Cứu giúp¶Giá trị import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))68 là một chuỗi chứa một mô tả ngắn gọn về đối số. Khi người dùng yêu cầu trợ giúp (thường là bằng cách sử dụng args = parser.parse_args() print(args.filename, args.count, args.verbose)37 hoặc args = parser.parse_args() print(args.filename, args.count, args.verbose)38 tại dòng lệnh), các mô tả import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))68 này sẽ được hiển thị với mỗi đối số: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'2 Các chuỗi import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))68 có thể bao gồm các định dạng định dạng khác nhau để tránh lặp lại những thứ như tên chương trình hoặc mặc định đối số. Các nhà xác định có sẵn bao gồm tên chương trình, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag73 và hầu hết các đối số từ khóa đến parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37, ví dụ: import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))75, import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))76, vv .: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'3 Khi chuỗi trợ giúp hỗ trợ %-formatting, nếu bạn muốn một import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))77 theo nghĩa đen xuất hiện trong chuỗi trợ giúp, bạn phải thoát nó dưới dạng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))78. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 Hỗ trợ làm im lặng mục trợ giúp cho một số tùy chọn nhất định, bằng cách đặt giá trị import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))68 thành import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))81: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'4 Metavar¶Khi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 tạo tin nhắn trợ giúp, nó cần một số cách để đề cập đến từng đối số dự kiến. Theo mặc định, các đối tượng ArgentParSer sử dụng giá trị định mệnh làm tên tên của mỗi đối tượng. Theo mặc định, đối với các hành động đối số vị trí, giá trị định mệnh được sử dụng trực tiếp và đối với các hành động đối số tùy chọn, giá trị định mệnh được sử dụng trên đường. Vì vậy, một đối số vị trí duy nhất với import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))83 sẽ được gọi là import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))84. Một đối số tùy chọn duy nhất args = parser.parse_args() print(args.filename, args.count, args.verbose)35 nên được theo sau bởi một đối số dòng lệnh duy nhất sẽ được gọi là import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))86. Một ví dụ: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'5 Một tên thay thế có thể được chỉ định với import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))87: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'6 Lưu ý rằng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))87 chỉ thay đổi tên được hiển thị - tên của thuộc tính trên đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 vẫn được xác định bởi giá trị định mệnh. Các giá trị khác nhau của args = parser.parse_args() print(args.filename, args.count, args.verbose)96 có thể khiến Metavar được sử dụng nhiều lần. Cung cấp một tuple cho import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))87 Chỉ định một màn hình khác nhau cho từng đối số: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'7 định mệnhHầu hết các hành động parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Thêm một số giá trị dưới dạng thuộc tính của đối tượng được trả về bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39. Tên của thuộc tính này được xác định bởi đối số từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37. Đối với các hành động đối số vị trí, import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 thường được cung cấp như là đối số đầu tiên cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'8 Đối với các hành động đối số tùy chọn, giá trị của import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 thường được suy ra từ các chuỗi tùy chọn. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 tạo ra giá trị của import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 bằng cách lấy chuỗi tùy chọn dài đầu tiên và loại bỏ chuỗi $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)01 ban đầu. Nếu không có chuỗi tùy chọn dài nào được cung cấp, import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 sẽ được lấy từ chuỗi tùy chọn ngắn đầu tiên bằng cách tước ký tự args = parser.parse_args() print(args.filename, args.count, args.verbose)01 ban đầu. Bất kỳ ký tự args = parser.parse_args() print(args.filename, args.count, args.verbose)01 nội bộ nào cũng sẽ được chuyển đổi thành $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)05 ký tự để đảm bảo chuỗi là tên thuộc tính hợp lệ. Các ví dụ dưới đây minh họa hành vi này: $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] prog.py: error: argument N: invalid int value: 'a'9 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 cho phép một tên thuộc tính tùy chỉnh được cung cấp: >>> parser = argparse.ArgumentParser(description='Process some integers.')0 Các lớp hành độngCác lớp hành động thực hiện API hành động, một cuộc gọi có thể gọi được trả về một cuộc gọi có thể gọi được xử lý các đối số từ dòng lệnh. Bất kỳ đối tượng nào theo API này có thể được truyền dưới dạng tham số args = parser.parse_args() print(args.filename, args.count, args.verbose)63 đến parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37. classargparse.action (tùy chọn_strings, dest, nargs = none, const = none, mặc định = không, loại = không, lựa chọn = none, bắt buộc = falseargparse.Action(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)¶ Các đối tượng hành động được sử dụng bởi một archarchParser để thể hiện thông tin cần thiết để phân tích một đối số duy nhất từ một hoặc nhiều chuỗi từ dòng lệnh. Lớp hành động phải chấp nhận hai đối số vị trí cộng với bất kỳ đối số từ khóa nào được chuyển đến parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag07 ngoại trừ chính args = parser.parse_args() print(args.filename, args.count, args.verbose)63. Các phiên bản hành động (hoặc giá trị trả về của bất kỳ cuộc gọi nào có thể gọi được cho tham số args = parser.parse_args() print(args.filename, args.count, args.verbose)63) nên có các thuộc tính của Dest Dest, Tùy chọn_Strings Cách dễ nhất để đảm bảo các thuộc tính này được xác định là gọi $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)12. Các trường hợp hành động phải được gọi, vì vậy các lớp con phải ghi đè phương thức args = parser.parse_args() print(args.filename, args.count, args.verbose)92, cần chấp nhận bốn tham số:
Phương pháp args = parser.parse_args() print(args.filename, args.count, args.verbose)92 có thể thực hiện các hành động tùy ý, nhưng thường sẽ đặt các thuộc tính trên $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)15 dựa trên import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 và $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)19. Các lớp con hành động có thể xác định phương thức args = parser.parse_args() print(args.filename, args.count, args.verbose)94 không có đối số và trả về một chuỗi sẽ được sử dụng khi in cách sử dụng của chương trình. Nếu phương thức đó không được cung cấp, một mặc định hợp lý sẽ được sử dụng. Phương thức parse_args ()ArcharchParser.parse_args (args = none, không gian tên = none) ¶parse_args(args=None, namespace=None)¶Chuyển đổi chuỗi đối số thành các đối tượng và gán chúng là thuộc tính của không gian tên. Trả lại không gian tên đông dân. Các cuộc gọi trước đây đến parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 Xác định chính xác những đối tượng nào được tạo và cách chúng được gán. Xem tài liệu cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 để biết chi tiết.
Giá trị tùy chọn Cú phápPhương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 hỗ trợ một số cách chỉ định giá trị của một tùy chọn (nếu nó có một). Trong trường hợp đơn giản nhất, tùy chọn và giá trị của nó được truyền dưới dạng hai đối số riêng biệt: >>> parser = argparse.ArgumentParser(description='Process some integers.')1 Đối với các tùy chọn dài (các tùy chọn có tên dài hơn một ký tự), tùy chọn và giá trị cũng có thể được truyền dưới dạng đối số dòng lệnh duy nhất, sử dụng $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)33 để tách chúng ra: >>> parser = argparse.ArgumentParser(description='Process some integers.')2 Đối với các tùy chọn ngắn (các tùy chọn chỉ dài một ký tự), tùy chọn và giá trị của nó có thể được nối: >>> parser = argparse.ArgumentParser(description='Process some integers.')3 Một số tùy chọn ngắn có thể được kết hợp với nhau, chỉ sử dụng một tiền tố args = parser.parse_args() print(args.filename, args.count, args.verbose)01 duy nhất, miễn là chỉ có tùy chọn cuối cùng (hoặc không ai trong số chúng) yêu cầu một giá trị: >>> parser = argparse.ArgumentParser(description='Process some integers.')4 Đối số không hợp lệ¶Trong khi phân tích dòng lệnh, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 kiểm tra nhiều lỗi khác nhau, bao gồm các tùy chọn mơ hồ, các loại không hợp lệ, tùy chọn không hợp lệ, số lượng đối số vị trí sai, v.v. : >>> parser = argparse.ArgumentParser(description='Process some integers.')5 Đối số chứa ________ 201¶Phương pháp parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 cố gắng đưa ra lỗi bất cứ khi nào người dùng rõ ràng đã phạm sai lầm, nhưng một số tình huống vốn đã mơ hồ. Ví dụ: đối số dòng lệnh $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)38 có thể là một nỗ lực để chỉ định một tùy chọn hoặc cố gắng cung cấp một đối số vị trí. Phương pháp parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 rất thận trọng ở đây: Các đối số vị trí chỉ có thể bắt đầu bằng args = parser.parse_args() print(args.filename, args.count, args.verbose)01 nếu chúng trông giống như số âm và không có tùy chọn nào trong trình phân tích cú pháp trông giống như số âm: >>> parser = argparse.ArgumentParser(description='Process some integers.')6 Nếu bạn có các đối số vị trí phải bắt đầu với args = parser.parse_args() print(args.filename, args.count, args.verbose)01 và don lồng trông giống như các số âm, bạn có thể chèn các đối số giả $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)42 cho biết parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 rằng mọi thứ sau đó là một đối số vị trí: >>> parser = argparse.ArgumentParser(description='Process some integers.')7 Các chữ viết tắt đối số (khớp tiền tố) ¶Phương pháp parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 theo mặc định cho phép các tùy chọn dài được viết tắt là tiền tố, nếu viết tắt không rõ ràng (tiền tố phù hợp với tùy chọn duy nhất):by default allows long options to be abbreviated to a prefix, if the abbreviation is unambiguous (the prefix matches a unique option): >>> parser = argparse.ArgumentParser(description='Process some integers.')8 Một lỗi được tạo ra cho các đối số có thể tạo ra nhiều tùy chọn. Tính năng này có thể được vô hiệu hóa bằng cách cài đặt allow_abbrev thành parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28.allow_abbrev to parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag28. Ngoài ________ 103¶Đôi khi có thể hữu ích khi có một đối số phân tích phân tích khác với các đối số của parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag03. Điều này có thể được thực hiện bằng cách chuyển một danh sách các chuỗi cho parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39. Điều này rất hữu ích để kiểm tra tại dấu nhắc tương tác: >>> parser = argparse.ArgumentParser(description='Process some integers.')9 Đối tượng không gian tênclassargparse.namespace¶argparse.Namespace¶Lớp đơn giản được sử dụng theo mặc định bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 để tạo các thuộc tính giữ đối tượng và trả về nó. Lớp này có chủ ý đơn giản, chỉ là một lớp con $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)50 với một biểu diễn chuỗi có thể đọc được. Nếu bạn thích có chế độ xem giống như các thuộc tính, bạn có thể sử dụng thành ngữ Python tiêu chuẩn, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)51: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')0 Cũng có thể hữu ích khi có một gán parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 gán cho một đối tượng đã có, thay vì một đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag50 mới. Điều này có thể đạt được bằng cách chỉ định đối số từ khóa $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)54: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')1 Các tiện ích khácChỉ huy phụ côngArcharchParser.add_subparsers ([Tiêu đề] [, Mô tả] [, Prog] [, Parser_Class] [, Action] [, Tùy chọn_Strings] [, Dest] [, Yêu cầu] [, Help] [, Metavar]) ¶add_subparsers([title][, description][, prog][, parser_class][, action][, option_strings][, dest][, required][, help][, metavar])¶Nhiều chương trình chia chức năng của chúng thành một số lệnh phụ, ví dụ, chương trình $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)55 có thể gọi các lệnh phụ như $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)56, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)57 và $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)58. Chia tách chức năng theo cách này có thể là một ý tưởng đặc biệt tốt khi một chương trình thực hiện một số chức năng khác nhau yêu cầu các loại đối số dòng lệnh khác nhau. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 hỗ trợ việc tạo ra các lệnh phụ như vậy bằng phương pháp $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60. Phương thức $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60 thường được gọi là không có đối số và trả về một đối tượng hành động đặc biệt. Đối tượng này có một phương thức duy nhất, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)62, lấy tên lệnh và bất kỳ đối số trình xây dựng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 nào và trả về một đối tượng parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 có thể được sửa đổi như bình thường. Mô tả các tham số:
Một số ví dụ sử dụng: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')2 Lưu ý rằng đối tượng được trả về bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 sẽ chỉ chứa các thuộc tính cho trình phân tích cú pháp chính và trình con được chọn bởi dòng lệnh (chứ không phải bất kỳ trình nào khác). Vì vậy, trong ví dụ trên, khi lệnh $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)71 được chỉ định, chỉ có các thuộc tính args = parser.parse_args() print(args.filename, args.count, args.verbose)52 và import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))84 và khi lệnh $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)74 được chỉ định, chỉ có các thuộc tính args = parser.parse_args() print(args.filename, args.count, args.verbose)52 và $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)76. Tương tự, khi một tin nhắn trợ giúp được yêu cầu từ trình con, chỉ có sự trợ giúp cho trình phân tích cú pháp cụ thể đó mới được in. Thông điệp trợ giúp sẽ không bao gồm trình phân tích cú pháp phụ huynh hoặc trình phân tích cú pháp anh chị em. . >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')3 Phương pháp $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60 cũng hỗ trợ các đối số từ khóa $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)80 và $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)81. Khi có mặt, các lệnh Subparser sẽ xuất hiện trong nhóm của riêng họ trong đầu ra trợ giúp. Ví dụ: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')4 Hơn nữa, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)82 hỗ trợ một đối số $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)83 bổ sung, cho phép nhiều chuỗi tham khảo cùng một trình tự phụ. Ví dụ này, như $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)55, bí danh $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)85 như một tốc ký cho $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)86: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')5 Một cách đặc biệt hiệu quả để xử lý các lệnh phụ là kết hợp việc sử dụng phương thức $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60 với các cuộc gọi đến args = parser.parse_args() print(args.filename, args.count, args.verbose)18 để mỗi người con biết chức năng Python nào nên thực hiện. Ví dụ: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')6 Bằng cách này, bạn có thể để parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 thực hiện công việc gọi chức năng thích hợp sau khi phân tích đối số hoàn tất. Liên kết các chức năng với các hành động như thế này thường là cách dễ nhất để xử lý các hành động khác nhau cho mỗi người phụ của bạn. Tuy nhiên, nếu cần phải kiểm tra tên của trình con được gọi, đối số từ khóa import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))94 cho cuộc gọi $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60 sẽ hoạt động: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')7 Thay đổi trong phiên bản 3.7: Đối số từ khóa bắt buộc mới.New required keyword argument. Đối tượng Filetypeclassargparse.filetype (mode = 'r', bufsize = -1, expoding = none, error = none) ¶ argparse.FileType(mode='r', bufsize=- 1, encoding=None, errors=None)¶Nhà máy import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))53 tạo ra các đối tượng có thể được truyền đến đối số loại parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag07. Các đối số có các đối tượng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))53 là loại của chúng sẽ mở các đối số dòng lệnh dưới dạng các tệp với các chế độ được yêu cầu, kích thước bộ đệm, mã hóa và xử lý lỗi (xem hàm $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)95 để biết thêm chi tiết): >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')8 Các đối tượng FileType hiểu giả thuyết giả args = parser.parse_args() print(args.filename, args.count, args.verbose)07 và tự động chuyển đổi nó thành $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)97 cho các đối tượng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))53 có thể đọc được và $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)99 cho các đối tượng import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))53 có thể ghi: >>> parser.add_argument('integers', metavar='N', type=int, nargs='+', ... help='an integer for the accumulator') >>> parser.add_argument('--sum', dest='accumulate', action='store_const', ... const=sum, default=max, ... help='sum the integers (default: find the max)')9 Mới trong phiên bản 3.4: Các đối số từ khóa mã hóa và lỗi.The encodings and errors keyword arguments. Nhóm tranh luậnArcharchParser.add_argument_group (title = none, description = none) ¶add_argument_group(title=None, description=None)¶Theo mặc định, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 Các đối số dòng lệnh của các nhóm thành các đối số vị trí của các đối số và các đối số tùy chọn, khi hiển thị các thông báo trợ giúp. Khi có một nhóm đối số khái niệm tốt hơn so với mặc định này, các nhóm thích hợp có thể được tạo bằng phương pháp $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=0 Phương thức $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002 trả về một đối tượng nhóm đối số có phương thức parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 giống như parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 thông thường. Khi một đối số được thêm vào nhóm, trình phân tích cú pháp đối xử với nó giống như một đối số bình thường, nhưng hiển thị đối số trong một nhóm riêng cho các tin nhắn trợ giúp. Phương thức $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002 chấp nhận các đối số tiêu đề và mô tả có thể được sử dụng để tùy chỉnh màn hình này: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=1 Lưu ý rằng bất kỳ đối số nào không có trong các nhóm do người dùng định nghĩa sẽ kết thúc trong các phần đối số vị trí thông thường của các phần và các đối số tùy chọn. Đã thay đổi trong phiên bản 3.11: Gọi $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002 on an argument group is deprecated. This feature was never supported and does not always work correctly. The function exists on the API by accident through inheritance and will be removed in the future. Loại trừ lẫn nhau¶ArcharchParser.add_mutally_exclusive_group (bắt buộc = false) ¶add_mutually_exclusive_group(required=False)¶Tạo một nhóm loại trừ lẫn nhau. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 sẽ đảm bảo rằng chỉ có một trong các đối số trong nhóm loại trừ lẫn nhau có mặt trên dòng lệnh: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=2 Phương pháp $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1009 cũng chấp nhận một đối số cần thiết, để chỉ ra rằng ít nhất một trong các đối số loại trừ lẫn nhau là bắt buộc: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=3 Lưu ý rằng các nhóm đối số loại trừ hiện tại không hỗ trợ tiêu đề và các đối số mô tả của $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002. Đã thay đổi trong phiên bản 3.11: Gọi $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1002 or $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1009 on a mutually exclusive group is deprecated. These features were never supported and do not always work correctly. The functions exist on the API by accident through inheritance and will be removed in the future. Người phân tích cú pháp Defaults¶ArcharchParser.set_defaults (** kwargs) ¶set_defaults(**kwargs)¶Hầu hết thời gian, các thuộc tính của đối tượng được trả về bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 sẽ được xác định đầy đủ bằng cách kiểm tra các đối số dòng lệnh và các hành động đối số. args = parser.parse_args() print(args.filename, args.count, args.verbose)18 Cho phép một số thuộc tính bổ sung được xác định mà không cần thêm bất kỳ kiểm tra nào của dòng lệnh: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=4 Lưu ý rằng các mặc định cấp độ phân tích cú pháp luôn ghi đè mặc định cấp đối số: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=5 Mặc định cấp độ phân tích cú pháp có thể đặc biệt hữu ích khi làm việc với nhiều trình phân tích cú pháp. Xem phương thức $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)60 cho một ví dụ về loại này. Archarchparparser.get_default (Dest) ¶get_default(dest)¶ Nhận giá trị mặc định cho thuộc tính không gian tên, như được đặt bởi parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag37 hoặc bằng args = parser.parse_args() print(args.filename, args.count, args.verbose)18: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=6 In ấn trợ giúpTrong hầu hết các ứng dụng điển hình, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 sẽ chăm sóc định dạng và in bất kỳ thông báo sử dụng hoặc lỗi nào. Tuy nhiên, một số phương thức định dạng có sẵn: ArcharchParser.print_usage (file = none) ¶print_usage(file=None)¶ In một mô tả ngắn gọn về cách parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 nên được gọi trên dòng lệnh. Nếu tệp là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag21, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)99 được giả định. ArcharchParser.print_help (file = none) ¶print_help(file=None)¶ In tin nhắn trợ giúp, bao gồm sử dụng chương trình và thông tin về các đối số được đăng ký với parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34. Nếu tệp là parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag21, $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator options: -h, --help show this help message and exit --sum sum the integers (default: find the max)99 được giả định. Ngoài ra còn có các biến thể của các phương thức này chỉ cần trả về một chuỗi thay vì in nó: ArcharchParser.format_usage () ¶format_usage()¶Trả về một chuỗi chứa một mô tả ngắn gọn về cách parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34 nên được gọi trên dòng lệnh. ArcharchParser.format_help () ¶format_help()¶ Trả về một chuỗi chứa thông báo trợ giúp, bao gồm việc sử dụng chương trình và thông tin về các đối số được đăng ký với parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34. Phân tích cú pháp một phầnArcharchParser.parse_known_args (args = none, không gian tên = none) ¶parse_known_args(args=None, namespace=None)¶Đôi khi một tập lệnh chỉ có thể phân tích một vài đối số dòng lệnh, chuyển các đối số còn lại cho tập lệnh hoặc chương trình khác. Trong những trường hợp này, phương pháp $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1027 có thể hữu ích. Nó hoạt động giống như parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag39 ngoại trừ việc nó không tạo ra lỗi khi có các đối số bổ sung. Thay vào đó, nó trả về một tuple hai mục chứa không gian tên dân cư và danh sách các chuỗi đối số còn lại. >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=7 Cảnh báo Các quy tắc khớp tiền tố áp dụng cho $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1027. The parser may consume an option even if it’s just a prefix of one of its known options, instead of leaving it in the remaining arguments list. Tùy chỉnh tệp phân tích cú pháp tệpArmentParser.convert_arg_line_to_args (arg_line) ¶convert_arg_line_to_args(arg_line)¶Các đối số được đọc từ một tệp (xem đối số từ khóa từfile_prefix_chars đến hàm tạo parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag34) được đọc một đối số trên mỗi dòng. args = parser.parse_args() print(args.filename, args.count, args.verbose)12 có thể được ghi đè cho việc đọc fancier. Phương thức này lấy một đối số arg_line là một chuỗi được đọc từ tệp đối số. Nó trả về một danh sách các đối số được phân tích cú pháp từ chuỗi này. Phương thức được gọi là một lần trên mỗi dòng đọc từ tệp đối số, theo thứ tự. Một sự ghi đè hữu ích của phương pháp này là một loại coi từng từ được phân tách không gian như một đối số. Ví dụ sau đây cho thấy cách làm điều này: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=8 Phương pháp thoátArcharchParser.exit (status = 0, message = none) ¶exit(status=0, message=None)¶Phương thức này chấm dứt chương trình, thoát với trạng thái được chỉ định và, nếu được đưa ra, nó sẽ in một thông báo trước đó. Người dùng có thể ghi đè phương thức này để xử lý các bước này khác nhau: >>> parser.parse_args(['--sum', '7', '-1', '42']) Namespace(accumulate=9 ArcharchParser.Error (tin nhắn) ¶error(message)¶ Phương pháp này in một thông báo sử dụng bao gồm thông báo đến lỗi tiêu chuẩn và chấm dứt chương trình bằng mã trạng thái là 2. Phân tích cú pháp xen kẽArcharchParser.parse_intermixed_args (args = none, không gian tên = không)parse_intermixed_args(args=None, namespace=None)¶ ArgumentParser.parse_known_intermixed_args(args=None, namespace=None)¶Một số lệnh UNIX cho phép người dùng xen kẽ các đối số tùy chọn với các đối số vị trí. Các phương pháp $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1032 và $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1033 hỗ trợ phong cách phân tích cú pháp này. Các trình phân tích cú pháp này không hỗ trợ tất cả các tính năng của Argparse và sẽ tăng các ngoại lệ nếu các tính năng không được hỗ trợ được sử dụng. Cụ thể, các nhóm phụ, parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag26 và các nhóm loại trừ lẫn nhau bao gồm cả hai tùy chọn và vị trí không được hỗ trợ. Ví dụ sau đây cho thấy sự khác biệt giữa $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1027 và $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1032: cái trước trả về $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1037 là các đối số không được phân biệt, trong khi cái sau thu thập tất cả các vị trí thành $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1038. parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag00 $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1033 Trả về một bộ hai mục chứa không gian tên dân cư và danh sách các chuỗi đối số còn lại. $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1032 gây ra lỗi nếu có bất kỳ chuỗi đối số không được nhìn nhận nào còn lại. Mới trong phiên bản 3.7. Nâng cấp mã OPTPAREBan đầu, mô -đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 đã cố gắng duy trì khả năng tương thích với $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1042. Tuy nhiên, $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1042 rất khó để mở rộng một cách minh bạch, đặc biệt là với những thay đổi cần thiết để hỗ trợ các nhà xác định $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1044 mới và thông báo sử dụng tốt hơn. Khi hầu hết mọi thứ trong $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1042 đã được sao chép hoặc được gắn khỉ, nó dường như không còn thực tế khi cố gắng duy trì khả năng tương thích ngược. Mô -đun parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01 được cải thiện trên mô -đun thư viện tiêu chuẩn $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1042 theo một số cách bao gồm:
Đường dẫn nâng cấp một phần từ $ python prog.py 1 2 3 4 4 $ python prog.py 1 2 3 4 --sum 1042 lên parser.add_argument('filename') # positional argument parser.add_argument('-c', '--count') # option that takes a value parser.add_argument('-v', '--verbose', action='store_true') # on/off flag01:
|