Khi bạn chạy Python thông qua dòng lệnh, việc truyền đối số và trích xuất giá trị của các đối số có thể thực hiện dễ dàng bằng cách sử dụng thư viện Python có sẵn, argparse.
python upload.py –file=abc.txt –storage=amazon_s3
Thư viện này đã được tích hợp sẵn trong Python từ phiên bản 3.2 trở lên, nên bạn không cần phải cài đặt thêm bất kỳ thứ gì. Bạn có thể tìm hiểu thêm về tài liệu của thư viện argparse tại đây.
- argparse Document: https://docs.python.org/3/library/argparse.html
Đầu tiên các bạn hãy import thư viện vào
from argparse import ArgumentParser
Sau đó hãy định nghĩa các Argument mà bạn mong muốn
# Add arguments parser = ArgumentParser() parser.add_argument("-f", "--file", dest="local_file", help="Please specify file", metavar="str") parser.add_argument("-s", "--storage", dest="storage_host", help="Please specify storage", metavar="str")
- Tham số thứ nhất, VD: -f, -s là key của đôi số (ngắn)
- Tham số thứ hai, VD: –file, –storage là key của đối số (dài)
- dest: là key của biến args mà ta sẽ sử dụng để lấy giá trị của đối số
- help: Trường hợp có tham số đầu vào mà không chỉ ra giá trị truyền vào nó sẽ thông báo message này
- metavar: kiểu dữ liệu truyền vào
Cuối cùng là các bạn lấy giá trị truyền vào như sau:
# parse arguments args = parser.parse_args()
Vậy toàn bộ đoạn code của chúng ta như sau:
from argparse import ArgumentParser # Add arguments parser = ArgumentParser() parser.add_argument("-f", "--file", dest="local_file", help="Please specify file", metavar="str") parser.add_argument("-s", "--storage", dest="storage_host", help="Please specify storage", metavar="str") # parse arguments args = parser.parse_args() print(args)
Kết quả:
Để biết thêm cách sử dụng thư viện này, các bạn vui lòng tham khảo tài liệu đã gửi bên trên.