Giới thiệu về Python:

Python là ngôn ngữ lập trình hướng đối tượng, bậc cao, mạnh mẽ. Ngoài ra, học Python là khá đơn giản và dễ dàng. Python cũng là một ngôn ngữ thông dịch, tức là ngôn ngữ không cần phải biên dịch ra file chạy mà đọc code đến đâu thì chạy đến đó. Khi chạy lệnh Python ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code ngay trực tiếp tại đây.

Guido Van Rossum là người sáng lập ra ngôn ngữ này. Source code của Python mã nguồn mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Theo đánh giá của Eris S. Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện chon người mới học lập trình.

Khi sử dụng Python để viết các chương trình chạy với dòng lệnh là một việc thường xuyên của các lập trình viên sử dụng các bài toán máy học, phân tích dữ liệu...Trong các chương trình này, tham số được truyền trực tiếp từ dòng lệnh. Python sử dụng 2 module sys và getopt để thực hiện việc này rất dễ dàng.

Chúng ta xem xét đoạn chương trình sau:

001.PNG - 3.69 kb

Chạy đoạn mã python và xem kết quả

002.PNG - 8.3 kb

Trong đoạn mã trên chúng ta sử dụng sys để truy cập các tham số dòng lệnh. Ý nghĩa các hàm trong mã lệnh được mô tả dưới đây.

Module 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.

  • 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.

  • Chú ý: tham số đầu tiên luôn luôn là tên script và nó cũng được đếm trong số tham số.

Để dán các tham số dòng lệnh ra màn hình 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ân tích cú pháp danh sách tham số và các tùy chọn tham số dòng lệnh chúng ta sử dụng cú pháp:

 

getopt.getopt(args, option, [long_option])

Trong đó:

  • args: Đây là danh sách tham số để được phân tích.
  • 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).

Để hiển thị các thông báo khi dòng lệnh không nhận đúng các tham số chúng ta sử dụng getpot.GetoptError. Đâ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à optcung cấp thông điệp lỗi và tùy chọn có liên quan. 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>

Mã nguồn của bạn như sau:

003.PNG - 26.38 kb

Sau đó các bạn thử chạy chương trình với các tham số tùy chọn -h, -o, -i sẽ có được kết quả sau:

004.PNG - 11.43 kb

Có thể các bạn nào sử dụng thường xuyên các chương trình trên Windows sẽ thấy lạ với kiểu nhận tham số này. Tuy nhiên khi các bạn lập trình trên linux thì sẽ gặp chúng rất thường xuyên. Chúc các bạn thành công.

 

 

 

CLB Tin Học

  • Chưa có lời bình cho bài viết này.