Khi chạy python bằng command line, nếu bạn muốn truyền đối số và bắt các giá trị của đôi số giống như sau:
python upload.py --file=abc.txt --storage=amazon_s3
Thì các bạn có thể sử dụng thư viện Python: argparse. Thư viện này được build-in từ Python 3.2 nên bạn không cần phải cài đặt gì cả. Phần doc của thư viện này nằm ở đâ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.
Nguồn: vinasupport.com