Python使用Argparse讀取命令引數

mrchip發表於2024-05-23

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 --- 用於命令列選項、引數和子命令的解析器

相關文章