外部運行python代碼,argparse模塊的使用

前言

很多時候我們希望快速運行已經寫好的代碼,同時不希望打開一個臃腫的編輯器,還希望可以通過一些簡單的操作來控制不同的模式

就像下面這樣子
在這裏插入圖片描述
這裏我們在命令行輸入了兩條命令來控制、執行一個.py文件

python DC_GAN.py --mode train --batch_size 20
python DC_GAN.py --mode generate --batch_size 50

這裏通過指定參數modebatch_size來給程序傳入不同的參數,從而讓程序執行不同的代碼塊

如果你覺得在cmd輸入命令太麻煩,你還可以使用cmd腳本命令,這很簡單,可以實現點擊運行

cd /d %~dp0
python DC_GAN.py --mode train --batch_size 20
pause

將上面的代碼保存到和.py文件同一目錄的xx.cmd文件,點擊就可以運行py文件,這和你在cmd輸入命令是一樣的
cd /d %~dp0 將工作目錄轉到當前文件夾下
python DC_GAN.py --mode train --batch_size 20 用python解釋器運行DC_GAN.py,同時傳入一些參數
pause運行完命令後會關閉cmd窗口,使用pause可以讓你看到程序運行的結果

總結

但我們需要快速運行我們的文件,可以使用cmd命令傳參,同時可以配合cmd批處理腳本
下面我們簡要介紹一下.py文件怎麼獲取cmd命令傳入的參數傳參

使用argparse模塊

import argparse
def getArgs():
	parser = argparse.ArgumentParser()
	#parser.add_argument("-v", "--version", action="store_true")這個不太懂用
	parser.add_argument("--args1", type=str, help="這裏可以輸入一些提示信息")
	parser.add_argument("--args2", type=int, default=100)
	parser.add_argument("-userGPU", action="store_true")
	return parser.parse_args()
if __name__ == "__main__":
	args = getArgs()
	print("傳入的args1值爲{}".format(args.args1))
	print("傳入的args1值爲{}".format(args.args2))
	print("有沒有使用GPU:{}".format(args.args3))

##cmd運行結果
"""python xxx.py -userGPU
傳入的args1值爲None
傳入的args1值爲100
有沒有使用GPU:True
"""

注:

  • 使用action="store_true"後不可在添加type=“xxx”
  • 使用action="store_true"的參數不可以賦值,加了這個屬性後你指定了一個參數就可以,可參考上面代碼理解
  • 命令行參數變量前可以使用一個- 也可以使用兩個-
  • 命令行的參數和值直接不是用= 而是用空格,所以參數不能存在空格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章