前言
很多時候我們希望
快速運行
已經寫好的代碼,同時不希望打開
一個臃腫的編輯器
,還希望可以通過一些簡單的操作來控制不同的模式
就像下面這樣子
這裏我們在命令行輸入了兩條命令來控制、執行一個.py文件
python DC_GAN.py --mode train --batch_size 20
python DC_GAN.py --mode generate --batch_size 50
這裏通過指定參數mode
和batch_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"的參數不可以賦值,加了這個屬性後你指定了一個參數就可以,可參考上面代碼理解
- 命令行參數變量前可以使用一個
-
也可以使用兩個-
- 命令行的參數和值直接不是用
=
而是用空格,所以參數不能存在空格