Mô-đun Argparse cung cấp các phương tiện để cải thiện giao diện dòng lệnh. Các phương thức liên kết với mô-đun này giúp bạn dễ dàng viết mã cho các chương trình giao diện dòng lệnh cũng như tương tác tốt hơn. Mô-đun này tự động tạo thông báo trợ giúp và phát sinh lỗi khi truyền đối số không phù hợp. Nó thậm chí còn cho phép tùy chỉnh các thông báo được hiển thị trong trường hợp đối số không hợp lệ
Các cách xử lý đối số không hợp lệ
1. Hàm do người dùng xác định và tham số 'loại'
Mô-đun argparse có một hàm gọi là add_arguments[] trong đó loại đối số sẽ được chuyển đổi được cung cấp. Thay vì sử dụng các giá trị có sẵn, một hàm do người dùng xác định có thể được chuyển thành một giá trị cho tham số này. Điều này sẽ hữu ích trong nhiều trường hợp vì chúng ta có thể xác định tiêu chí của riêng mình để đối số hợp lệ sau khi chuyển đổi. Ví dụ, chúng ta hãy lấy một ví dụ đơn giản. Người ta phải nhập một số trong phạm vi từ 5 đến 15, nếu vượt quá thì sẽ xảy ra lỗi và lỗi đó cũng xảy ra ngay sau khi chuyển đổi. Nếu không, bình phương của số sẽ được hiển thị. Nhìn vào mã python bên dưới được lưu dưới dạng find_square. py
con trăn
import
argparse
# function to convert the input and
# check the range
def
checker[a]:
num
=
argparse
0argparse
1
argparse
2
argparse
4 argparse
5argparse
6 argparse
7 argparse
8argparse
9
0
1
2
3
4
5
7 num
# function to convert the input and
1=
# function to convert the input and
3
# function to convert the input and
5=
# function to convert the input and
7
5
# check the range
0
# check the range
1# check the range
2# check the range
3# check the range
4=
# check the range
6
# check the range
8=
def
0
def
1def
2def
3def
4def
5def
6
đầu ra
find_square. đầu ra py
Nếu đối số được truyền không nằm trong phạm vi đã cho, ví dụ: đối số được đưa ra lần đầu tiên ở hình trên '3', thông báo lỗi giá trị không hợp lệ. được hiển thị. Đối số được truyền vào lần tới là 10 nằm trong phạm vi đã chỉ định và do đó bình phương của 10 được in ra
Bây giờ, hãy xem một ví dụ khác, nơi bạn không muốn nhập chuyển đổi đầu vào nhưng chỉ định một số tiêu chí để nó có thể là đầu vào hợp lệ. Chương trình đưa ra dưới đây có hai đối số - uname, pwd [tên người dùng, mật khẩu]. Ở đây, tiêu chí để đặt tên người dùng là, tên người dùng phải có ít nhất 5 ký tự nhưng không quá 8 ký tự. Mật khẩu phải có ít nhất 1 chữ số, ít nhất 2 chữ cái và ít nhất 1 ký tự đặc biệt. Trình phân tích cú pháp được đặt để xử lý theo cách như vậy và chương trình được lưu dưới dạng pwd_check. py
con trăn
import
argparse
checker[a]:
0
def
checker[a]:
argparse
4 checker[a]:
5checker[a]:
6checker[a]:
7 argparse
7 checker[a]:
5
0argparse
6
0
1
2
3
6
7____16
9
6num
1num
2 num
3checker[a]:
7 num
5
7
num
9
def
=
1
=
4____9 =
6 =
7
=
9=
=
6 argparse
02
argparse
04=
=
6 argparse
07
argparse
10 argparse
11_______112 argparse
13def
2=
6____43checker[a]:
5argparse
18
argparse
19argparse
20
1argparse
4 argparse
23_______9 argparse
25 argparse
26 argparse
27=
argparse
29
5argparse
7 argparse
23=
argparse
34 argparse
26 argparse
27=
argparse
38argparse
39
6=
9=
=
9argparse
44argparse
45
argparse
19argparse
48
1argparse
50 argparse
23=
argparse
53 argparse
26 argparse
27=
argparse
57argparse
39
6=
4____9 =
4argparse
44argparse
45
argparse
66argparse
67
1argparse
69____20
6argparse
04=
argparse
04argparse
44argparse
45
argparse
79
argparse
4 argparse
82argparse
45 argparse
7 argparse
85argparse
86 argparse
7 argparse
88argparse
45 argparse
7 checker[a]:
5argparse
92argparse
93
0
1
2
3
_______76____199____25
7
# function to convert the input and
1=
07
# check the range
1
09____43# check the range
4=
# check the range
6
_______41____215____43____44____9
19
def
0
đầu ra
pwd_check. đầu ra py
- Lần chạy đầu tiên. các đối số là đam mê 12345678. Tên người dùng phải có ít nhất 5 ký tự
- Lần chạy thứ hai. các đối số là chuyên viên máy tính 12345678. Tiêu chí của mật khẩu không được thỏa mãn
- Lần chạy thứ ba. các đối số là chuyên viên máy tính 123abc@#. Chúng vượt qua tất cả các ràng buộc và do đó hệ thống thoát
2. Sử dụng ArgumentError[]
Hàm này chiếm hai tham số là đối số và thông báo sẽ được hiển thị. Để sử dụng điều này, một biến đề cập đến đối số phải được thiết lập. Nhìn vào ví dụ dưới đây. Chương trình lấy hai giá trị từ người dùng, giá trị đầu tiên phải là số lẻ và giá trị thứ hai phải là số chẵn. Nó được lưu dưới dạng Odd_even. py