Python模塊(1)-Argparse 簡易使用教程

argparse 簡易使用教程

  • 1.概況
  • 2. action
  • 3. argparse 使用demo
    • 3.1 argparse 實現加法器
    • 3.2 D-Model parser

1.概況

argparse是Python中用于解析命令行參數的一個模塊,可以自動生成help和usage信息;當從終端輸入的參數無效時,模塊會輸出提示信息。

必選參數和可選參數

# step1.創建ArgumentParser對象parser
parser=Argparse.ArgumentParser(description="process some integer.")
## parser保存了所有必要信息,用于將從命令行中讀入的參數 解析為對應的python數據類型。
## description,用于簡要介紹程序的功能和工作原理。在幫助消息中,顯示在 命令行用法字符串 和 各種參數的幫助消息之間。
## prog,用于顯示“程序文件名”,默認為“運行文件名”
## usage,程序使用說明。當使用了 usage 的參數之后,會覆蓋覆蓋了 prog 參數里面的值。
# step2: 給parser添加信息讀取字段,這些字段決定parser解析讀入參數的方法
parser.add_argument() 
# ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
## name,用于保存輸入變量
## action='store_const'  存儲由const關鍵字參數指定的值。
## default值是一個字符串,則解析器會將該值解析為一個命令行參數,變量的默認輸入
## type 指定變量的類型
## nargs單個命令行參數與要執行的單個操作相關聯
## nargs='+'.'+'和'*'一樣,出現的所有命令行參數都被收集到一個列表中。
## 當ArgumentParser生成幫助信息時,默認情況下使用dest的值作為每個對象的“名字”,metavar會改變顯示出來的名字 - parse_args() 對象中屬性的名字仍然由dest的值決定。(metavar: 這個參數用于help 信息輸出中)
# step3:解析parser保存的參數,返回一個命名空間
# 在實際python腳本中parse_args()一般不使用參數,它的參數由sys.argv確定。
args = parser.parse_args() 

2. action

action關鍵字默認狀態有兩種,store_true和store_false,若輸入命令時,不指定其參數,則store_true顯示為False,store_false顯示為True。可用作一個開關操作一個開關操作。【終端命令帶上之后會使用默認值】

parser.add_argument('--cuda', action='store_true', help='enables cuda')
# 終端命令不加入--cuda, args.cuda=False, 終端命令加入--cuda, args.cuda=True
parser.add_argument('--cuda', action='store_false', help='enables cuda')
# 終端命令不加入--cuda, args.cuda=True, 終端命令加入--cuda, args.cuda=False

3. argparse 使用demo

3.1 argparse 實現加法器

調用 parse_args() 將返回一個具有兩個屬性的對象, integers 和 accumulate 。累和語句實現,默認對輸入的數據進行求最大,如果解析到sum的參數,那么求和

import argparse
parser=argparse.ArgumentParser(description="process some integer.")
parser.add_argument('integers',metavar='N',type=int,nargs='+',help='an integer for accumulator')         # 可以讀一個數組
parser.add_argument('--sum',dest='accumulate',action='store_const',const=sum,default=max,help='sum the integers (default:find the max)'
args=parser.parse_args()
print(args.accumulate(args.integers))     # 居然可以當作函數調用

在這里插入圖片描述
上面程序實現了,默認求最大,可選求和的功能,結合上面程序,講解三個函數中常用的選項含義:

3.2 D-Model parser

在程序會見到最簡單的形式,指定,參數類型,可選值,默認值,和幫助信息等,在運行程序的時候可以通過命令行輸入用戶制定的參數,否則使用默認參數。
在這里插入圖片描述

更多內容可以詳見以下兩篇博文:
https://cloud.tencent.com/developer/section/1370514
https://www.cnblogs.com/piperck/p/8446580.html
https://blog.csdn.net/LemonTree_Summer/article/details/80749359

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445286.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445286.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445286.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習--Keras總結

Keras主要包括14個模塊,本文主要對Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共計8個模塊分別展開介紹,并通過一個簡單的Bp神經網絡說明各個模塊的作用。 1. Model 包:keras.models …

redis——NOSQL及redis概述

NoSql入門概述 單機Mysql的美好時代 瓶頸: 數據庫總大小一臺機器硬盤內存放不下數據的索引(B tree)一個機器的運行內存放不下訪問量(讀寫混合)一個實例不能承受Memcached(緩存) MySql 垂直拆…

Python(17)-元組tuple

高級數據類型--元組1.元組的定義2.元組基本操作3.元組的循環遍歷4.元組的應用場景5.元組與格式化字符串6.元組與列表之間的轉換元組的最大特征就是可訪問不可改,可作為字典的鍵值,因為鍵值必須是唯一的。字符串也是不可邊類型,因此也適合做字…

深度學習(莫煩 神經網絡 lecture 3) Keras

神經網絡 & Keras 目錄 神經網絡 & Keras目錄1、Keras簡介1.1 科普: 人工神經網絡 VS 生物神經網絡1.2 什么是神經網絡 (Neural Network)1.3 神經網絡 梯度下降1.4 科普: 神經網絡的黑盒不黑1.5 Why Keras?1.6 兼容 backend 2、如何搭建各種神經網絡2.1 Regressor回歸…

阿里Java編程規約(集合)

【強制】關于 hashCode 和 equals 的處理,遵循如下規則: 1) 只要覆寫 equals,就必須覆寫 hashCode。 2) 因為 Set 存儲的是不重復的對象,依據 hashCode 和 equals 進行判斷,所以 Set 存儲的對…

Pytorch(3)-數據載入接口:Dataloader、datasets

pytorch數據載入1.數據載入概況Dataloader 是啥2.支持的三類數據集2.1 torchvision.datasets.xxx2.2 torchvision.datasets.ImageFolder2.3 寫自己的數據類,讀入定制化數據2.3.1 數據類的編寫map-style范式iterable-style 范式2.3.2 DataLoader 導入數據類1.數據載入…

阿里Java編程規約(控制語句)

【強制】在一個 switch 塊內,每個 case 要么通過 continue/break/return 等來終止,要么 注釋說明程序將繼續執行到哪一個 case 為止;在一個 switch 塊內,都必須包含一個 default 語句并且放在最后,即使它什么代碼也沒…

大數據學習(5)-- NoSQL數據庫

文章目錄目錄1.NoSQL的介紹2.NoSQL產生的原因2.1 web2.02.2 NoSQL興起原因3.NoSQL和關系數據庫的區別4.NoSQL的四大類型4.1 鍵值數據庫4.2 列族數據庫4.3 文檔數據庫4.4 圖形數據庫4.5 不同類型的NoSQL數據庫進行比較5.NoSQL的三大基石5.1 CAP5.2 base5.3 最終一致性6.從NoSQL到…

經典算法重點總結

文章目錄排序算法冒泡排序直接插入排序希爾排序直接選擇排序快速排序堆排序歸并排序總結查找算法順序查找二分查找插值查找斐波那契查找樹表查找分塊查找哈希查找總結排序算法 冒泡排序 void bubbleSort(int a[] , int n){for(int i n-1 ; i > 0 ; i--){for(int j 0 ; j …

Python(18)-字典dictionary、集合

Python高級數據類型-字典1.字典的定義2.字典的基本操作:查詢,增加,修改,獲取3.字典的統計、合并、清空4.字典的循環遍歷5.返回最大“值”對應的“鍵”6.應用場景pop(key)7.集合字典是除了列表之外最靈活的數據類型,用來描述一個物…

redis——Redis中的LRU算法改進

redis通常使用緩存,是使用一種固定最大內存的使用。當數據達到可使用的最大固定內存時,我們需要通過移除老數據來獲取空間。redis作為緩存是否有效的重要標志是如何尋找一種好的策略:刪除即將需要使用的數據是一種糟糕的策略,而刪…

redis——HyperLogLog

HyperLogLog 是一種概率數據結構,用來估算數據的基數。數據集可以是網站訪客的 IP 地址,E-mail 郵箱或者用戶 ID。 基數就是指一個集合中不同值的數目,比如 a, b, c, d 的基數就是 4,a, b, c, d, a 的基數還是 4。雖然 a 出現兩次…

機器學習知識總結系列-機器學習中的優化算法總結(1-4)

文章目錄1.梯度下降1.1批量梯度下降(BGD)1.2隨機梯度下降(SGD)1.3 小批量隨機梯度下降(MSGD)1.4 比較:1.5 動量算法(momentum)1.6 Nestrov Momentum2. 自適應方法2.1 自適應學習率算法&#xff…

Python(19)-字符串、Unicode字符串

高級數據類型--字符串、Unicode字符串1.字符串的定義2.字符串的長度、計數、Index3.字符串常用方法3.1判斷類型3.2查找和替換3.3文本對齊3.4去除空白字符.strip()4.字符串的拆分和拼接5.字符串的切片6.跨行字符串7.包含轉義字符r8.字符串的分割與連接9.Unicode字符串字符串-不變…

機器學習中的距離和損失函數

文章目錄13.1 距離度量13.2 損失函數13.1 距離度量 距離函數種類:歐式距離、曼哈頓距離、明式距離(閔可夫斯基距離)、馬氏距離、切比雪夫距離、標準化歐式距離、漢明距離、夾角余弦等常用距離函數:歐式距離、馬氏距離、曼哈頓距離…

Python(20)-高級數據類型的公共方法

高級數據類型的公共方法1內置函數2高級數據類型切片3運算符,*,in4完整的for循環公共方法是列表,元組,字典,字符串都能使用的方法1內置函數 內置函數:不需要import導入模塊,就可以直接使用的函數…

redis——為什么選擇了跳表而不是紅黑樹?

跳表是個啥東西請看這個文章。 我們知道,節點插入時隨機出一個層數,僅僅依靠一個簡單的隨機數操作而構建出來的多層鏈表結構,能保證它有一個良好的查找性能嗎?為了回答這個疑問,我們需要分析skiplist的統計性能。 在…

機器學習公式推導

文章目錄線性回歸邏輯回歸線性判別分析PCAk-means決策樹svm隨機深林GBDTxgboost強化學習MapReduce線性回歸 邏輯回歸 對于分類問題:輸出0/1,超過[0,1]沒有意義,使用sigmoid函數 **代價函數:**使用L2平方差,由于模型函…

Python綜合應用(1)--名片管理系統開發

第一個綜合應用-名片管理系統1框架搭建2完善功能綜合應用,名片管理系統 歡迎界面,不同選項,1.新建名片,2.顯示全部,3 查詢名片(查到之后可以修改名片信息),0 退出系統 程序開發流程…

springboot1——spring相關入門

spring 隨著我們開發,發現了一個問題: A---->B---->C---->D 在A中創建B的對象調用B的資源 在B中創建C的對象調用C的資源 在C中創建D的對象調用…