Tham số dòng lệnh trong Python
Python cung cấp getopt Module giúp bạn phân tích cú pháp các tùy chọn và tham số dòng lệnh. $ python test.py arg1 arg2 arg3 sys Module 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: Ví dụ Ví dụ import ...
Python cung cấp getopt Module giúp bạn phân tích cú pháp các tùy chọn và tham số dòng lệnh.
$ python test.py arg1 arg2 arg3
sys Module 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:
Ví dụ
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ả là:
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 đếm trong số tham số.
Parse các tham số dòng lệnh trong Python
Python cung cấp getopt Module 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.
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ố:
getopt.GetoptError trong Python
Đây là một 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>
Đây là script:
import sys, getopt def main(argv): inputfile = ' outputfile = ' try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print 'test.py -i <inputfile> -o <outputfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'test.py -i <inputfile> -o <outputfile>' sys.exit() elif opt in ("-i", "--ifile"): inputfile = arg elif opt in ("-o", "--ofile"): outputfile = arg print 'Input file is "', inputfile print 'Output file is "', outputfile if __name__ == "__main__": main(sys.argv[1:])
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 "