Python,接受命令行參數
Python 提供了幾種處理從命令行調用程序時傳遞的參數的方法。
到目前為止,您已經從 REPL 運行程序,或者使用以下方式:
1 | python <filename>.py |
當這樣做時,您可以傳遞額外的參數和選項,例如:
1 | python <filename>.py <argument1> |
處理這些參數的一種基本方式是使用標準庫中的 sys
模塊。
您可以獲取在 sys.argv
列表中傳遞的參數:
1 | import sys |
sys.argv
列表的第一個元素包含運行的文件名,例如 ['main.py']
。
這是一種簡單的方式,但是您需要做很多工作。您需要驗證參數,確保它們的類型正確,需要在用戶未正確使用程序時向其提供反饋。
Python 還提供了另一個幫助您的標準庫包:argparse
。
首先,您導入 argparse
,並呼叫 argparse.ArgumentParser()
,並傳遞程序的描述:
1 | import argparse |
然後,您繼續添加要接受的參數。例如,在這個程序中,我們使用 -c
選項來傳遞一種顏色,像這樣:python program.py -c red
1 | import argparse |
如果未指定該參數,程序將引發錯誤:
1 | ➜ python python program.py |
您可以設置一個選項,其中包含一組特定的值,使用 choices
:
1 | parser.add_argument('-c', '--color', metavar='color', required=True, choices={'red','yellow'}, help='the color to search for') |
1 | ➜ python python program.py -c blue |
還有更多的選項,但這些是基本的。
還有一些社群提供的包也提供了此功能,例如 Click 和 Python Prompt Toolkit。
tags: [“Python”, “command line arguments”, “argparse”]