动态生成Python脚本输入的参数

动态生成Python脚本输入的参数

我使用一些命令行参数调用 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

答案1

你有多种选择,因为你已经使用了sed,我建议

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

在哪里

  • 用于-e指定多个 sed 命令
  • '/^#/d'删除以以下内容开头的行#
  • 's/^/--/'将行首替换为--

相关内容