【Python】一文向您詳細介紹 argparse中 action=‘store_true’ 的作用

【Python】一文向您詳細介紹 argparse中 action=‘store_true’ 的作用


?
下滑即可查看博客內容
在這里插入圖片描述

🌈 歡迎蒞臨我的個人主頁 👈這里是我靜心耕耘深度學習領域、真誠分享知識與智慧的小天地!🎇

🎓 博主簡介985高校的普通本碩,曾有幸發表過人工智能領域的 中科院頂刊一作論文,熟練掌握PyTorch框架

🔧 技術專長: 在CVNLP多模態等領域有豐富的項目實戰經驗。已累計提供近千次定制化產品服務,助力用戶少走彎路、提高效率,近一年好評率100%

📝 博客風采: 積極分享關于深度學習、PyTorch、Python相關的實用內容。已發表原創文章600余篇,代碼分享次數逾九萬次

💡 服務項目:包括但不限于科研輔導知識付費咨詢以及為用戶需求提供定制化解決方案

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?

🌵文章目錄🌵

  • 📚 一、認識`argparse`與`action='store_true'`
      • 示例場景
  • 🚀 二、`action='store_true'`的基本用法
  • 💡 三、完整命令行指令示例
  • 🔍 四、舉一反三:`action='store_false'`
      • 示例
  • 📚 五、`argparse`的更多應用場景
      • 位置參數
      • 互斥參數組
  • 🚀 六、總結與展望

下滑即可查看博客內容

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?

??

📚 一、認識argparseaction='store_true'

在Python中,argparse模塊是處理命令行參數的標準庫之一,它讓編寫用戶友好的命令行接口變得簡單。通過argparse,程序可以輕松地讀取命令行參數,并根據這些參數執行不同的操作。而action='store_true'argparse中一個非常實用的參數,它允許我們定義一個標志(flag),當這個標志在命令行中被指定時,自動將對應的變量設置為True

示例場景

假設我們正在編寫一個腳本,該腳本默認執行某個操作,但用戶可以通過命令行參數來啟用額外的功能。這時,action='store_true'就顯得非常有用。


🚀 二、action='store_true'的基本用法

下面是一個簡單的例子,演示了如何在argparse中使用action='store_true'

import argparse# 創建 ArgumentParser 對象
parser = argparse.ArgumentParser(description='示例腳本,展示 action=store_true 的用法。')# 添加一個標志 --verbose,當它被指定時,verbose 變量將被設置為 True
parser.add_argument('--verbose', help='啟用詳細模式', action='store_true')# 解析命令行參數
args = parser.parse_args()# 根據 verbose 的值執行不同的操作
if args.verbose:print('詳細模式已啟用!')
else:print('執行默認操作。')

在這個例子中,如果用戶運行腳本時沒有指定--verbose標志,那么args.verbose將會是False(因為action='store_true'的默認值是False),腳本將執行默認操作。如果用戶指定了--verbose(如python script.py --verbose),則args.verbose會被設置為True,腳本將輸出“詳細模式已啟用!”。


💡 三、完整命令行指令示例

假設上述腳本保存為script.py,那么完整的命令行指令如下:

  • 執行默認操作(不啟用詳細模式):

    python script.py
    

    輸出將會是:“執行默認操作。”

  • 啟用詳細模式:

    python script.py --verbose
    

    輸出將會是:“詳細模式已啟用!”


🔍 四、舉一反三:action='store_false'

action='store_false'argparse模塊中另一個實用的參數動作,它與action='store_true'相對應,但行為相反。當在命令行中指定了與action='store_false'相關聯的標志時,相應的變量會被設置為False。這在需要明確禁用某些默認開啟的功能時特別有用。

示例

假設我們有一個腳本,它默認會打印一些調試信息,但我們想要通過命令行參數來禁用這些調試信息。

import argparseparser = argparse.ArgumentParser(description='示例腳本,展示 action=store_false 的用法。')# 添加一個標志 --no-debug,當它被指定時,debug 變量將被設置為 False
parser.add_argument('--no-debug', help='禁用調試信息', action='store_false')# 注意:我們沒有為 debug 變量設置默認值,但根據 argparse 的規則,action=store_false 的默認值實際上是 True
# 如果想要明確設置默認值,可以使用 default=True 參數
# parser.add_argument('--no-debug', help='禁用調試信息', action='store_false', default=True)# 解析命令行參數
args = parser.parse_args()# 如果 args.no_debug 為 False(即 --no-debug 沒有被指定),則打印調試信息
if not args.no_debug:print('調試信息:這是調試信息的示例。')
else:print('調試信息已禁用。')

在這個例子中,如果用戶沒有指定--no-debug標志,則args.no_debug的值為True(因為action='store_false'的“未指定”狀態被視為True,但這通常不是我們想要的行為,所以更推薦使用default=True來明確設置默認值),腳本將打印調試信息。如果用戶指定了--no-debug,則args.no_debug會被設置為False,腳本將輸出“調試信息已禁用。”。然而,為了清晰和避免混淆,推薦總是為使用action='store_false'的參數明確設置default=True


📚 五、argparse的更多應用場景

argparse模塊不僅僅局限于簡單的標志(flag)處理,它還可以處理位置參數(positional arguments)、互斥參數組(mutually exclusive groups)、子命令(subcommands)等復雜場景。

位置參數

位置參數是命令行中按照特定順序出現的參數,它們不需要前綴(如--)。

parser.add_argument('filename', help='要處理的文件名')

互斥參數組

互斥參數組允許你定義一組參數,這些參數中一次只能指定一個。

group = parser.add_mutually_exclusive_group()
group.add_argument('--verbose', action='store_true')
group.add_argument('--quiet', action='store_true')

🚀 六、總結與展望

通過本文,我們深入了解了argparse模塊中action='store_true'action='store_false'的作用,以及如何在命令行中具體使用它們。我們還通過示例展示了argparse的基本用法和進階用法,包括位置參數、互斥參數組等。這些功能使得argparse成為Python中處理命令行參數的首選庫。

展望未來,隨著Python在數據科學、機器學習、Web開發等領域的廣泛應用,命令行工具的重要性日益凸顯。掌握argparse模塊,將幫助我們編寫出更加用戶友好、功能強大的命令行工具。同時,隨著Python生態的不斷發展,我們也可以期待argparse模塊本身能夠繼續進化,為我們提供更多便利和強大的功能。

最后,希望本文能夠幫助讀者更好地理解和使用argparse模塊,從而編寫出更加優秀的Python腳本和命令行工具。🎉

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

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

相關文章

pdf怎么轉換成圖片格式文件,pdf文檔怎么轉換成圖片格式

在數字化時代,pdf文件轉換成圖片格式是一種常見的操作,無論是在工作還是日常生活中,我們總會遇到需要將pdf文件轉換為圖片的需求。這可能是因為圖片格式更易于分享、展示或編輯。那么,如何高效地將pdf轉換成圖片呢?本文…

圖神經網絡實戰(16)——經典圖生成算法

圖神經網絡實戰(16)——經典圖生成算法 0. 前言1. 圖生成技術2. Erd?s–Rnyi模型3. 小世界模型小結系列鏈接 0. 前言 圖生成算法是指用于創建模擬圖或網絡結構的算法,這些算法可以根據特定的規則和概率分布生成具有特定屬性的圖&#xff0c…

深度解析:如何利用Python高效挖掘SQLite潛力

Python與SQLite共舞:構建高效輕量級數據庫應用實戰 Python,作為一門優雅且強大的編程語言,搭配輕巧靈活的SQLite數據庫,無疑為我們提供了揮灑創意的完美畫布。今天,咱們就通過一個鮮活的案例,一起探索如何…

leetcode77組合——經典回溯算法

本文主要講解組合的要點與細節,以及回溯算法的解題步驟,按照步驟思考更方便理解 c和java代碼如下,末尾 給定兩個整數 n 和 k,返回范圍 [1, n] 中所有可能的 k 個數的組合。 你可以按 任何順序 返回答案。 具體要點: …

將大型語言模型模塊化打造協作智能體

B UILDING C OOPERATIVE E MBODIED A GENTS MODULARLY WITH L ARGE L ANGUAGE M ODELS 論文鏈接: https://arxiv.org/abs/2307.02485https://arxiv.org/abs/2307.02485 1.概述 在去中心化控制及多任務環境中,多智能體合作問題因原始感官觀察、高昂…

【機器學習】機器學習重塑廣告營銷:精準觸達,高效轉化的未來之路

📝個人主頁🌹:Eternity._ 🌹🌹期待您的關注 🌹🌹 ?目錄 📒1. 引言📙2. 機器學習基礎與廣告營銷的結合🧩機器學習在廣告營銷中的核心應用領域🌹用…

【React】React18 Hooks 之 useReducer

目錄 useReducer案例1:useReducer不帶初始化函數案例2:useReducer帶初始化函數注意事項1:dispatch函數不會改變正在運行的代碼的狀態注意事項2:獲取dispatch函數觸發后 JavaScript 變量的值注意事項3:觸發了reducer&am…

webrtc sfu性能壓測

1. 前言 不少網友最近私信我,咨詢webrtc sfu服務端性能問題,SRS開源服務能支持多少路webrtc流,mediasoup單房間能支持多少個人,推流能接入多少路,拉流能拉取多少路?720p能支持多少路,360p能支持…

Spring Boot集成olingo快速入門demo

1.什么是olingo? Apache Olingo 是個 Java 庫,用來實現 Open Data Protocol (OData)。 Apache Olingo 包括服務客戶端和 OData 服務器方面。 Open Data Protocol (開放數據協議,OData) 是用來查詢和更新數據的一種W…

【吊打面試官系列-MyBatis面試題】MyBatis 實現一對多有幾種方式,怎么操作的?

大家好,我是鋒哥。今天分享關于 【MyBatis 實現一對多有幾種方式,怎么操作的?】面試題,希望對大家有幫助; MyBatis 實現一對多有幾種方式,怎么操作的? 有聯合查詢和嵌套查詢。聯合查詢是幾個表聯合查詢,只查詢一次,通過…

觀察矩陣(View Matrix)、投影矩陣(Projection Matrix)、視口矩陣(Window Matrix)及VPM矩陣及它們之間的關系

V表示攝像機的觀察矩陣(View Matrix),它的作用是把對象從世界坐標系變換到攝像機坐標系。因此,對于世界坐標系下的坐標值worldCoord(x0, y0, z0),如果希望使用觀察矩陣VM將其變換為攝像機坐標系下的坐標值localCoord(x…

【滲透入門】HTTP請求包

文章目錄 前言HTTP GET請求包HTTP POST請求包Content-Type 前言 HTTP(HyperText Transfer Protocol)請求包,是Web通信的基礎。HTTP請求包格式主要由以下幾部分組成: 請求行:包含了請求方法(GET、POST、PUT…

32單片機,C語言與匯編聯合編譯的幾種方式

適用編譯器:Keil5 方式一: 單獨創建一個.s匯編文件,在匯編文件內對函數進行EXPORT聲明 r0寄存器是函數傳入的第一個參數,r1寄存器是函數傳入的第二個參數,以次類推。參數最多不確定是到r4為止,還是到r12…

Node.js-path 模塊

path 模塊 path 模塊提供了 操作路徑 的功能,如下是幾個較為常用的幾個 API: 代碼實例: const path require(path);//獲取路徑分隔符 console.log(path.sep);//拼接絕對路徑 console.log(path.resolve(__dirname, test));//解析路徑 let pa…

Robust Regression

最小二乘回歸受數據中的離群點的影響較大,穩健回歸通過降低離群點的影響緩解此問題。M估計法是穩健回歸的重要方法之一,M 估計法的目標函數為: m i n ∑ ρ ( ? i ) m i n ∑ ρ ( y i ? β ^ ? X i ) min\sum\rho(\epsilon_i) min\sum\…

vulhub-activemq(CVE-2016-3088)

在 Apache ActiveMQ 5.12.x~5.13.x 版本中,默認關閉了 fileserver 這個應用(不過,可以在conf/jetty.xml 中開啟);在 5.14.0 版本后,徹底刪除了 fileserver 應用。【所以在滲透測試過程中要確定好 ActiveMQ …

word 使用手冊

word 文檔中如何將下行的指定文字退格到上行中 就像是這樣的 編號:111 密碼:222 編號:123 密碼:321 編號:124 密碼:331 變成 編號:111密碼:222 編號:123密碼&#xff1…

數據結構1:C++實現變長數組

數組作為線性表的一種,具有內存連續這一特點,可以通過下標訪問元素,并且下標訪問的時間復雜的是O(1),在數組的末尾插入和刪除元素的時間復雜度同樣是O(1),我們使用C實現一個簡單的邊長數組。 數據結構定義 class Arr…

華為OD機試 - 來自異國的客人(Java 2024 D卷 100分)

華為OD機試 2024D卷題庫瘋狂收錄中,刷題點這里 專欄導讀 本專欄收錄于《華為OD機試(JAVA)真題(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一題都有詳細的答題思路、詳細的代碼注釋、樣例測…

新手教學系列——前后端分離API優化版

在之前的文章《Vue 前后端分離開發:懶人必備的API SDK》中,我介紹了通過Object對象自動生成API的方法。然而,之前的代碼存在一些冗余之處。今天,我將分享一個改進版本,幫助你更高效地管理API。 改進版API SDK 首先,讓我們來看一下改進后的代碼: import request from …