python命令行傳遞參數(shù)的兩種方式
引言
python在命令行運行.py文件時,如何在命令行傳遞參數(shù)給運行程序,python默認(rèn)提供了sys模塊的系統(tǒng)參數(shù)屬性實現(xiàn)接收命令行中的外部參數(shù)。
另一種則是通過argparse模塊實現(xiàn)的,argparse模塊可以實現(xiàn)事先對命令行參數(shù)的初始化,更加的便于命令行參數(shù)的管理。
1、sys.argv參數(shù)
sys.argv的命令行參數(shù)獲取方式比較的簡單,直接通過提取sys.argv的值就可以獲取到其對應(yīng)的參數(shù)。
比如,下面寫一個hello_world.py模塊,并且在其中引用了命令行參數(shù)。
import sys print('Hi ' + str(sys.argv[1]) + ', welcome to Hello World!')
直接在命令行執(zhí)行當(dāng)前的.py文件,執(zhí)行命令應(yīng)該是這樣的。
python hello_world.py Siri
這時我們預(yù)期的結(jié)果應(yīng)該是下面這樣的。
# Hi Siri, welcome to Hello World!
執(zhí)行后的結(jié)果和預(yù)期的運行結(jié)果是一模一樣的。
在運行時,有一個不好的地方時,若是在命令行沒有傳遞足夠的參數(shù),則會直接拋出下面的異常。
2、argparse參數(shù)
使用argparse模塊,有一個好處就是事先對需要在命令行傳遞的參數(shù)做一個初始化的賦值,若是命令行沒有值的時候則可以使用默認(rèn)值來賦值。
并且argparse模塊可以通過參數(shù)構(gòu)造器ArgumentParser實現(xiàn)對參數(shù)的管理,看起來一目了然。
import argparse # 初始化參數(shù)構(gòu)造器 parser = argparse.ArgumentParser() # 在參數(shù)構(gòu)造器中添加兩個命令行參數(shù) parser.add_argument('--name', type=str, default='Siri') parser.add_argument('--message', type=str, default=',Welcom to Python World!') # 獲取所有的命令行參數(shù) args = parser.parse_args() print('Hi ' + str(args.name) + str(args.message))
同樣的,創(chuàng)建一個hello_python.py文件,來運行上述代碼塊,看一下執(zhí)行效果。
python hello_python.py
可以發(fā)現(xiàn)在未添加命令行的參數(shù)傳遞后,默認(rèn)使用的是我們構(gòu)造器中添加的參數(shù)默認(rèn)值來進(jìn)行賦值的。
接下來,若是我們在命令行中再次對參數(shù)進(jìn)行重新賦值是怎樣的效果。
python hello_python.py --name Laow --message Hello_World
到此這篇關(guān)于python命令行傳遞參數(shù)的兩種方式的文章就介紹到這了,更多相關(guān)python命令行傳遞參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用
高階函數(shù)就是能夠把函數(shù)當(dāng)成參數(shù)傳遞的函數(shù)就是高階函數(shù),換句話說如果一個函數(shù)的參數(shù)是函數(shù),那么這個函數(shù)就是一個高階函數(shù)。本文為大家詳細(xì)講解了Python中常用的四個高階函數(shù),感興趣的可以了解一下2022-04-04Python異步執(zhí)行CMD命令的具體實現(xiàn)
異步執(zhí)行CMD命令是提高Python程序性能的有效方法,本文就來介紹一下Python異步執(zhí)行CMD命令的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-05-05Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)
這篇文章主要介紹了Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的廣度優(yōu)先與深度優(yōu)先搜索算法示例
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的廣度優(yōu)先與深度優(yōu)先搜索算法,結(jié)合實例形式分析了圖的廣度優(yōu)先與深度優(yōu)先搜索算法原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-12-12基于Python實現(xiàn)中秋佳節(jié)月餅搶購腳本
這篇文章主要介紹了Python版中秋佳節(jié)月餅搶購腳本,今天要用的是一個測試工具的庫Selenium,今天我們就是用它去實現(xiàn)自動化搶購月餅,其實就是用這個工具"模擬"人為操作瀏覽器相應(yīng)的操作,比如登陸,勾選購物車商品,下單購買等等操作,需要的朋友可以參考下2022-09-09