Đối số dòng lệnh
Đối số dòng lệnh là các tham số đầu vào cho phép người dùng cho phép chương trình hoạt động theo một cách nhất định như xuất thông tin bổ sung hoặc đọc dữ liệu từ một nguồn được chỉ định hoặc diễn giải dữ liệu ở định dạng mong muốn.
Đối số dòng lệnh trong Python
Python cung cấp nhiều tùy chọn để đọc các đối số dòng lệnh. Các cách phổ biến nhất là -
- Python sys.argv
- Mô-đun getopt của Python
- Mô-đun argparse trong Python
Mô-đun hệ thống Python
Mô-đun sys lưu trữ các đối số dòng lệnh (CLA) vào một danh sách và để truy xuất nó, chúng tôi sử dụng sys.argv. Đó là một cách đơn giản để đọc các đối số dòng lệnh dưới dạng chuỗi.
import sys print(type(sys.argv)) print('The command line arguments are: ') for i in sys.argv: print(i)
Một chương trình đang chạy ở trên, đầu ra của chúng ta sẽ giống như -
Đầu ra
>python CommandLineOption.py H E L L O <class 'list'> The command line arguments are: CommandLineOption.py H E L L O
Mô-đun getopt của Python
Mô-đun getopt của python phân tích cú pháp một chuỗi đối số như sys.argv và trả về chuỗi các cặp tùy chọn &đối số và chuỗi các đối số không phải tùy chọn.
Cú pháp
getopt.getopt(args, options, [long_options])
ở đâu:
-
Args - Danh sách đối số được phân tích cú pháp
-
Tùy chọn - Đây là chuỗi ký tự tùy chọn mà tập lệnh muốn nhận dạng.
-
Long_options - Đây là tham số tùy chọn, là danh sách các chuỗi với tên của các tùy chọn dài cần được hỗ trợ.
Cú pháp tùy chọn mô-đun getopt bao gồm -
- -a
- -bval
- -b val
- --noarg
- --witharg =val
- --witharg val
Chúng ta hãy hiểu mô-đun getopt thông qua một ví dụ -
Tùy chọn biểu mẫu ngắn
Chương trình bên dưới có hai tùy chọn, -a và –b với tùy chọn thứ hai yêu cầu một đối số.
import getopt print (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))
Kết quả
([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])
Tùy chọn biểu mẫu dài
Chương trình có hai tùy chọn, --noarg và –witharg và trình tự phải là [‘noarg’, ‘witharg =’]
import getopt print (getopt.getopt([ '--noarg', '--witharg', 'val', '--witharg2=another' ],'',[ 'noarg', 'witharg=', 'witharg2=' ]))
Kết quả
([('--noarg', ''), ('--witharg', 'val'), ('--witharg2', 'another')], [])
Một ví dụ khác để chứng minh công dụng của mô-đun địa lý -
import getopt import sys argv = sys.argv[1:] try: opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file=']) print(opts) print(args) except getopt.GetoptError: print('Something Wrong!') sys.exit(2)
Kết quả
>python CommandLineOption.py -m 2 -h "Help" H E L L O [('-m', '2'), ('-h', '')] ['Help', 'H', 'E', 'L', 'L', 'O']
Mô-đun argparse trong Python
Mô-đun argparse trong Python là cách ưu tiên để phân tích cú pháp các đối số dòng lệnh. Mô-đun này cung cấp một số tùy chọn như đối số vị trí, giá trị mặc định cho đối số, thông báo trợ giúp, chỉ định kiểu dữ liệu của đối số, v.v.
Dưới đây là một chương trình đơn giản để hiểu mô-đun argparse -
import argparse parser = argparse.ArgumentParser() parser.add_argument("string", help="Print the word in upper case letters") args = parser.parse_args() print(args.string.upper()) # This way argument can be manipulated.
Đầu ra
>python CommandLineOption.py "Hello, pythoN" HELLO, PYTHON
Chúng ta có thể đặt đối số tùy chọn với mô-đun argparse như –verbosity.