python
編寫的指令碼需要透過命令引數來做一些引數配置。本文將介紹如何使用argparse
來解析命令列引數。這種方法相對於sys.args
的方式會簡單很多。
透過以下的指令碼來構建一個簡單的配置解析器,解析使用者名稱、密碼。
import argparse
import sys
def main():
args = sys.argv
print(args)
parser = argparse.ArgumentParser(
prog='App.py',
description='An app.py description',
epilog='Copyright(r), 2024',
)
parser.add_argument('source')
parser.add_argument('-u', '--user', default='admin', type=str, required=True)
parser.add_argument('-p', '--password', default='admin', type=str, required=True)
args = parser.parse_args()
print('parsed args:')
print(f'outfile = {args.source}')
print(f'user = {args.user}')
print(f'password = {args.password}')
if __name__ == '__main__':
main()
如果直接執行指令碼,由於沒有提供任何的引數,因此會直接輸出格式化的幫助文件
python app.py -h
輸出結果:
usage: App.py [-h] -u USER -p PASSWORD source
An app.py description
positional arguments:
source
optional arguments:
-h, --help show this help message and exit
-u USER, --user USER
-p PASSWORD, --password PASSWORD
輸入正確的命令列引數,程式將輸出對應的配置引數
python app.py -u admin -p admin main.py
輸出結果
['xxxx/app.py', '-u admin', '-p admin', 'main.py']
parsed args:
outfile = main.py
user = admin
password = admin
參考連結
argparse - 廖雪峰的官方網站
argparse --- 用於命令列選項、引數和子命令的解析器