Python argparse xác thực

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= argparse0argparse1

argparse2

    argparse4 argparse5argparse6 argparse7 argparse8argparse9 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 range0

# check the range1# check the range2# check the range3# check the range4=# check the range6

 

# check the range8= def0

def1def2def3def4def5def6

đầ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]:

    argparse4 checker[a]:5checker[a]:6checker[a]:7 argparse7 checker[a]:5    0argparse6 0

 1 2  3

    6    7____16     9

    6num1num2 num3checker[a]:7 num5

     7

 

num9

def =1

 

    =4____9 ==7

    =9= =argparse02

    argparse04= =argparse07

 

    argparse10 argparse11_______112 argparse13def2=6____43checker[a]:5argparse18

argparse19argparse20

 1argparse4 argparse23_______9 argparse25 argparse26 argparse27= argparse29 5argparse7 argparse23= argparse34 argparse26 argparse27= argparse38argparse39

    6=9= =9argparse44argparse45

 

argparse19argparse48

 1argparse50 argparse23= argparse53 argparse26 argparse27= argparse57argparse39

    6=4____9 =4argparse44argparse45

 

argparse66argparse67

 1argparse69____20

    6argparse04= argparse04argparse44argparse45

 

    argparse79

    argparse4 argparse82argparse45 argparse7 argparse85argparse86 argparse7 argparse88argparse45 argparse7 checker[a]:5argparse92argparse93 0

 1 2  3

_______76____199____25

     7

 

 

# function to convert the input and 1=  07

# check the range1 09____43# check the range4=# check the range6

_______41____215____43____44____9 19

def0

đầ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

Chủ Đề