Ⅰ python寫一個命令,可是我試了半天,不知道參數怎麼寫。
如果您想寫一個命令行程序,可以使用Python的argparse模塊來實現。argparse模塊提供了一組簡單而強大逗桐的命令行解析工具,可以讓您快速構建復雜的命令行程序。
下面是一個簡單的例子,展示了如何山畢坦使用argparse模塊來定義命令行參數:
在上面的代碼中,我們首先數陵導入argparse模塊,然後創建一個ArgumentParser對象,並使用add_argument()方法來定義命令行參數。其中,第一個參數是參數的名字,第二個參數是參數的別名,help參數用來指定幫助信息,type參數用來指定參數的類型。
在這個例子中,我們定義了兩個參數:name和age,分別表示用戶的名字和年齡。您可以在命令行中使用
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', help='Your name')
parser.add_argument('-a', '--age', type=int, help='Your age')
args = parser.parse_args()
print('Hello, {}! You are {} years old.'.format(args.name, args.age))
Ⅱ Python筆記:命令行參數解析
有些時候我們需要通過命令行將參數傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實現簡單的參數解析,本文將對這3種命令行參數解析方法簡要介紹。
sys.argv是傳入的參數列表,sys.argv[0]是當前python腳本的名稱,sys.argv[1]表示第一個參數,以此類推。
命令行運行:
可以看到傳入的參數通過sys.argv來獲取,它就是一個參數列表。
python的getopt與C語言的的getopt()函數類似。相比於sys模塊,支持長參數和短參數,並對參數解析賦值。但它需要結合sys模塊進行參數解析,語法格式如下:
短參數為單個英文字母,如果必須賦值需要在後面加英文冒號( : ),長參數一般為字元串(相比短參數,更能說明參數含義),如果必須賦值需要在後面加等號( = )。
命令行運行:
注意:短參數(options)和長參數(long_options)不需要一一對應,可以任意順序,也可以只有短參數或者只有長參數。
argparse模塊提供了很多可以設置的參數,例如參數的默認值,幫助消息,參數的數據類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。
下面介紹這三個函數的使用方法。
argparse默認提供了 -h | --help 參數:
命令行運行:
下面列出部分參數:
下面來添加參數:
命令行運行:
parse_args() 方法用於解析參數,在前面的示例代碼中使用parse_args方法來提取參數值,對於無效或者錯誤的參數會列印錯誤信息和幫助信息:
命令行運行:
本文介紹了Python的三種命令行參數解析方法sys.argv、getopt和argparse,可以根據自己的需要進行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細的使用方法參考官方文檔:
--THE END--
Ⅲ Python 命令行(三)- 命令行參數解析
Python 標准庫中的 argparse 可以根據程序中的定義,從 sys.argv 中解析參數,並且自動生成幫助信息。
使用 add_argument 方法為應用程序添加參數,其中 add_argument 方法的參數比較多,這也使得 argparse 庫的使用不夠簡潔,後續將繼續為大家介紹更好用的命令行參數解析的開源庫 click 。
下面是 add_argument 方法的參數及含義總結:
解析參數需要使用 ArgumentParser 實例的 parse_args 方法,此方法返回一個 NameSpace 對象;可以通過訪問 NameSpace 對象屬性的方式獲取參數值。
下面是一個簡單的例子:通過 parser.server 獲取 --host 選項的值,通過 parse.boolean_switch 獲取 -t 選項的值。
查看幫助信息:
參數默認值:
指定參數:
列印幫助信息:
列印版本信息:
傳遞參數:
Ⅳ 在Python中如何獲取命令行參數
import sys
import getopt
def usage():
print ("sys.argv[0]: '-a aa -b bb -c cc'")
print ("sys.argv[0]: ' -h'")
def db_get_args():
try:
opts,args = getopt.getopt(sys.argv[1:], "ha:b:c:")
except getopt.GetoptError,err:
print str(err)
usage()
sys.exit(1)
if len(opts) == 3:
for op,value in opts:
if(op == "-h"):
usage()
sys.exit(1)
elif(op == "-a"):
aa = value
elif(op == "-b"):
bb = value
elif(op == "-c"):
cc = value
else:
usage()
sys.exit(1)
else:
usage()
sys.exit(1)
return aa,bb,cc
aa,bb,cc = db_get_args()
print aa,bb,cc
Ⅳ Python語言命令行參數解析接收參數執行腳本的三種方法
在Windows系統上,Python腳本文件當然雙擊就能直接運行。不過我們往往需要在執行腳本的時候還要添加相應的參數,另外在Ubuntu系統中,我們執行文件往往和其他系統或用戶命令一樣,需要在終端中輸入,參數當然也要一並加上。所以機智客這里說的意思是,執行Python腳本(.py文件)時候需要輸入相應參數,這樣程序怎麼寫的方法。
上面這么說可能有點不明不白的,或者有朋友會用但未必知道命令行解析這種表達方式。舉個例子,比如我們在執行一個腳本文件的時候,可能會在CMD或者終端中輸入python demo.py 10或者python demo.py --separator 10後面這個數字就是參數。我們要編寫這樣的腳本或者函數,有哪些方法呢?這里列舉三種常用的。
一個是用系統模塊sys。引入模塊語句是import sys。也就是Python語言的內置庫中的sys.argv。argv通常有argv[0],argv[1],argv[2]這樣幾個參數。基本使用方法是m_sil_len = int(sys.argv[1])傳入第一個參數,sil_th = int(sys.argv[2])傳入第二個參數。如果是簡單一點的參數或者腳本,我們引入了sys。可以直接用這個傳入參數。
一種是用模塊argparse來實現,這是標准庫中推薦的命令行解析模塊。引入模塊語句是import argparse。基本使用方法是引入模塊後,先parser = argparse.ArgumentParser()創建對象,然後調用方法添加參數parser.add_argument("jzk", help="這是關於參數的說明", type=int),之後args = parser.parse_args()使用解析就可以用了。機智客看到這個方法在很多項目腳本中使用。我們在閱讀機器學習AI之類的開源項目,就會發現很多人用的都是這個方法。
還有一個就是用fire模塊,用於生成命令行界面的工具。引入模塊語言是import fire。它默認以-為參數分隔符的。基本使用方法是fire.Fire()。這個不僅可以做命令行的參數解析,還可以還給一個類class添加命令行。所以使用時候括弧里填入函數名或者類名即可,也就是裡面的參數可以是其他Python對象。
Ⅵ Python 命令行參數是怎麼用的啊完全不懂,望賜教。。。
importsys
a=sys.argv[1]#獲取第一個參數
b=sys.argv[2]#獲取第二個參數
printa
printb
在命令行運行:(python腳本文件路徑)空格(第一個參數)空格(第二個參數)
Ⅶ python,命令行參數的短格式和長格式分別是什麼意思
Python代碼
1. try:
2. opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "
output="])
3. except getopt.GetoptError: 4. # print help information and exit:
1. 處理所使用的函數叫getopt() ,因為是直接使用import 導入的getopt 模塊,所以要加上限定getopt 才可以。
2. 使用sys.argv[1:] 過濾掉第一個參數(它是執行腳本的名字,不應算作參數的一部分)。
3. 使用短格式分析串"ho:" 。當一個選項只是表示開關狀態時,即後面不帶附加參數時,在分析串中寫入選項字元。當選項後面是帶一個附加參數時,在分析串中寫入選項字元同時後面加一個":" 號 。所以"ho:" 就表示"h" 是一個開關選項;"o:" 則表示後面應該帶一個參數。
4. 使用長格式分析串列表:["help", "output="] 。長格式串也可以有開關狀態,即後面不跟"=" 號。如果跟一個等號則表示後面還應有一個參數 。這個長格式表示"help" 是一個開關選項;"output=" 則表示後面應該帶一個參數。
5. 調用getopt 函數。函數返回兩個列表:opts 和args 。opts 為分析出的格式信息。args 為不屬於格式信息的剩餘的命令行參數。opts 是一個兩元組的列表。每個元素為:( 選項串, 附加參數) 。如果沒有附加參數則為空串'' 。
Ⅷ python如何通過命令行輸入參數
形式一:直接在命令行輸入參數
第一個紅色框為命令行參數
第二個框為控制台模式(Terminal)
形式二:在編譯工具中配置參數
點擊運行:點擊紅色框 編輯配置
如下圖:紅色框即為設置的命令行參數