Bash

為 python 腳本輸入動態生成參數

  • May 11, 2022

我用一些命令行參數呼叫 python 腳本,例如:

python3 script.py --run 1 --filepath "this/file/dir"

我現在嘗試解析配置文件中的參數:

grep -v '^#' ${THIS_FILE_DIR}/model.conf | sed 's/=/ /' | xargs  -I% echo "--%"

這產生了我想要的字元串:

--run 1
--filepath this/file/dir

有沒有辦法將此字元串動態輸入到我的python命令中,類似於:

python3 script.py $(grep -v '^#' ${THIS_FILE_DIR}/model.conf | sed 's/=/ /' | xargs  -I% echo "--%")

Conf 文件供參考

# vars
run=1
filepath=this/file/dir

你有多種選擇,因為你已經使用了sed,我建議

python3 script.py $(sed -e '/^#/d' -e 's/=/ /' -e 's/^/--/' ${THIS_FILE_DIR}/model.conf )

在哪裡

  • 用於-e指定多個 sed 命令
  • '/^#/d'刪除以開頭的行#
  • 's/^/--/'將行首替換為--

引用自:https://unix.stackexchange.com/questions/702143