濮阳杆衣贸易有限公司

主頁 > 知識庫 > Python命令行參數(shù)argv和argparse該如何使用

Python命令行參數(shù)argv和argparse該如何使用

熱門標(biāo)簽:深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 外呼系統(tǒng)前面有錄音播放嗎 柳州正規(guī)電銷機(jī)器人收費(fèi) 騰訊地圖標(biāo)注有什么版本 千呼ai電話機(jī)器人免費(fèi) 高德地圖標(biāo)注字母 400電話辦理費(fèi)用收費(fèi) 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 申請辦個400電話號碼

概述

運(yùn)行python腳本時通過命令行方式傳入運(yùn)行參數(shù)通常有以下兩種自建方式:

  • sys.argv - 簡潔
  • argparse - 豐富,可自定義

下面詳細(xì)說一下具體時使用

argv

# test_argv.py

import sys

args = sys.argv
print(f'args = {args}')

>>> output
➜ git:(master) python3 test_argv.py     
args = ['test_argv.py']
➜ git:(master) ✗ python3 test_argv.py 1 2 3
args = ['test_argv.py', '1', '2', '3']
➜ git:(master) ✗ python3 test_argv.py 1 2 3 'hello world !'
args = ['test_argv.py', '1', '2', '3', 'hello world !']

從上面可以看出,通過argv方法獲取的結(jié)果:

  • 返回為list
  • 第一個參數(shù)為腳本本身
  • 如參數(shù)中間帶空格,用引號即可

argparse

argparse模塊的功能較為豐富,其核心是通過add_argument方法自定義入?yún)⒌模簶?biāo)志、格式、類型和范圍等特性,常用如下:

  • *name_or_flag - 定義入?yún)⒚騠lag,如'-n', '--number'
  • type - 指定入?yún)㈩愋?/li>
  • choices - 指定入?yún)⒎秶?/li>
  • default - 指定入?yún)⒛J(rèn)值
  • required - 指定該餐素是否不要,布爾類型
  • help - 參數(shù)概述

更多請參考: argparse

實(shí)例

test_argv.py

import argparse

# 初始化一個parser對象
parser = argparse.ArgumentParser(description='test module of argparse')

# 指定-n/--number的參數(shù)
# 類型為int
# help為簡短地說明
parser.add_argument(
  '-n', '--number', type=int,
  help='args of number'
)

# 指定-o/--output參數(shù)
# 并限制類型為:['txt', 'csv', 'doc']
parser.add_argument(
  '-o', '--output', type=str,
  choices=['txt', 'csv', 'doc'],
  help='output method'
)

# 指定-d/--default參數(shù)
# 并限制類型為:['txt', 'csv', 'doc']
parser.add_argument(
  '-d', '--default', type=int,
  choices=[_ for _ in range(1, 10)],
  default=5,
  help='default'
)

# 指定位置參數(shù)foo
parser.add_argument('foo')

args = parser.parse_args()
print(f'args = {args}')

# 獲取指定參數(shù)
print(
  f'number = {args.number}, type = {type(args.number)}\n'
  f'output = {args.output}, type = {type(args.output)}\n'
  f'default = {args.default}, type = {type(args.default)}\n'
  f'foo = {args.foo}, type = {type(args.foo)}'
)

output

# -h - 打印help
➜ git:(master) ✗ python3 test_argv.py -h
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
          [-d {1,2,3,4,5,6,7,8,9}]
          foo

test module of argparse

positional arguments:
 foo

optional arguments:
 -h, --help      show this help message and exit
 -n NUMBER, --number NUMBER
            args of number
 -o {txt,csv,doc}, --output {txt,csv,doc}
            output method
 -d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9}
            default
# 不帶參數(shù)運(yùn)行,結(jié)果為None
➜ git:(master) ✗ python3 test_argv.py  
args = Namespace(number=None, output=None)
number = None
output = None

# 帶參數(shù)運(yùn)行
➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt
args = Namespace(number=33, output='txt')
number = 33, type = class 'int'>
output = txt, type = class 'str'>

# 參數(shù)格式錯誤
➜ git:(master) ✗ python3 test_argv.py -n str     
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
test_argv.py: error: argument -n/--number: invalid int value: 'str'
➜ git:(master) ✗ python3 test_argv.py -o excel    
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
test_argv.py: error: argument -o/--output: invalid choice: 'excel' (choose from 'txt', 'csv', 'doc')

# 默認(rèn)參數(shù) 
➜ git:(master) ✗ python3 test_argv.py   
args = Namespace(default=5, number=None, output=None)
number = None, type = class 'NoneType'>
output = None, type = class 'NoneType'>
output = 5, type = class 'int'>

以上就是Python命令行參數(shù)argv和argparse該如何使用的詳細(xì)內(nèi)容,更多關(guān)于Python命令行參數(shù)argv和argparse的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 在ipython notebook中使用argparse方式
  • Python argparse模塊使用方法解析
  • Python如何使用argparse模塊處理命令行參數(shù)
  • python argparser的具體使用
  • Python參數(shù)解析模塊sys、getopt、argparse使用與對比分析
  • Python的argparse庫使用詳解
  • Python解析命令行讀取參數(shù)--argparse模塊使用方法
  • Python包argparse模塊常用方法

標(biāo)簽:合肥 哈爾濱 烏蘭察布 烏蘭察布 海南 大慶 郴州 平頂山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python命令行參數(shù)argv和argparse該如何使用》,本文關(guān)鍵詞  Python,命令行,參數(shù),argv,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python命令行參數(shù)argv和argparse該如何使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python命令行參數(shù)argv和argparse該如何使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    金乡县| 阿拉尔市| 丽江市| 三河市| 温泉县| 长春市| 疏附县| 增城市| 阳曲县| 文昌市| 通辽市| 平原县| 珠海市| 法库县| 建始县| 延长县| 交城县| 平度市| 邹平县| 乃东县| 临夏市| 图木舒克市| 衡山县| 株洲市| 同江市| 青岛市| 兴化市| 台安县| 大化| 小金县| 石首市| 克什克腾旗| 叶城县| 定南县| 舟曲县| 盘山县| 湖北省| 波密县| 都兰县| 综艺| 黎城县|