Mô-đun getopt giúp bạn phân tích cú pháp các tùy chọn và tham số dòng lệnh trong Python.
$ python test.py arg1 arg2 arg3
Mô-đun sys trong Python cung cấp sự truy cập tới bất kỳ tham số dòng lệnh nào thông qua sys.argv. Phục vụ hai mục đích:
- sys.argv là danh sách các tham số dòng lệnh.
- len(sys.argv) là số tham số dòng lệnh.
Nội dung chính
Ví dụ
import sys print 'So tham so:', len(sys.argv), 'tham so.' print 'Danh sach tham so:', str(sys.argv)
Bây giờ chạy script trên như sau:
$ python test.py arg1 arg2 arg3
Kết quả:
So tham so: 4 tham so. Danh sach tham so: ['test.py', 'arg1', 'arg2', 'arg3']
Ghi chú: tham số đầu tiên luôn luôn là tên script và nó cũng được tính là một tham số.
Phân tích các tham số dòng lệnh trong Python
Python cung cấp mô-đun getopt giúp bạn phân tích cú pháp các tùy chọn và tham số dòng lệnh. Module này cung cấp hai hàm và một exception để kích hoạt việc phân tích cú pháp các tham số dòng lệnh.
1. Phương thức getopt.getopt trong Python
Phương thức này phân tích cú pháp danh sách tham số và các tùy chọn tham số dòng lệnh. Cú pháp là:
getopt.getopt(args, option, [long_option])
Chi tiết về tham số:
- args: Đây là danh sách tham số được truyền vào từ dòng lệnh.
- option: Đây là chuỗi các tùy chọn mà script muốn để nhận ra. Với các tùy chọn mà yêu cầu một tham số thì nên được theo sau bởi một dấu hai chấm (:).
- long_option: Đây là tham số tùy ý và nếu được xác định, phải là một danh sách các chuỗi là tên các tùy chọn dài, mà được hỗ trợ. Với các tùy chọn dài yêu cầu một tham số thì nên được theo sau bởi một dấu bằng (=). Để chỉ chấp nhận các tùy chọn dài, các tùy chọn nên là một chuỗi trống.
- Phương thức này trả về trả trị bao gồm hai phần tử: phần tử đầu là một danh sách các cặp (option, value). Phần tử thứ hai là danh sách các tham số chương trình.
- Cặp option-value được trả về có một dấu gạch nối ngắn ở trước (ví dụ -x) là tùy chọn ngắn, có hai dấu gạch nối là tùy chọn dài (ví dụ --long-option).
2. getopt.GetoptError trong Python
Đây là một ngoại lệ (exception) và nó được tạo khi thấy một tùy chọn không được nhận ra trong danh sách tham số hoặc khi một tùy chọn cần một tham số mà không cung cấp tham số nào.
Tham số cho exception là một chuỗi chỉ nguyên nhân gây ra lỗi. Các thuộc tính msg và opt cung cấp thông điệp lỗi và tùy chọn có liên quan.
Ví dụ:
Giả sử bạn muốn truyền hai tên file thông qua dòng lệnh và bạn cũng muốn cung cấp một tùy chọn để kiểm tra sự sử dụng của script. Usage của script là như sau:
usage: test.py -i <inputfile> -o <outputfile>
Bây giờ chạy script trên như sau:
$ test.py -h usage: test.py -i <inputfile> -o <outputfile> $ test.py -i BMP -o usage: test.py -i <inputfile> -o <outputfile> $ test.py -i inputfile Input file is " inputfile Output file is "
Link tham khảo:
https://www.tutorialspoint.com/python/python_command_line_arguments.htm