我需要在azure管道中执行一个python脚本,并带有额外的命令行参数
我能够使用此代码成功地内联运行脚本&;我得到的输出与预期一致:
1-用于打印('Hello',args.svc)为('Hello',Service_De')
2-用于打印('Hello',args.env)为('Hello',Dev')
- task: PythonScript@0
inputs:
scriptSource: inline
script: |
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--svc")
parser.add_argument("--env")
args = parser.parse_args()
print ('Hello ', args.svc)
print ('Hello ', args.env)
arguments: --svc ${{parameters.service}}_${{parameters.environment}}
--env ${{parameters.environment}}
我有两个问题需要帮助:
问题1: 当我分开我的服务和;环境参数和更新我的python任务作为这两个参数的组合,脚本会给我一个错误 打印('Hello',args.svc_args.env)
我无法正确格式化python代码。理想情况下,我希望输出为('Helo','Service\u Dev')
- task: PythonScript@0
inputs:
scriptSource: inline
script: |
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--svc")
parser.add_argument("--env")
args = parser.parse_args()
print ('Hello ', args.svc_args.env)
arguments: --svc ${{parameters.service}}
--env ${{parameters.environment}}
第2期: 当我使用filepath选项执行相同的工作代码时,它无法执行,并给我一个错误:
IOError:[Errno 2]没有这样的文件或目录:'./group_vars/args.svc.yaml'
- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: "$(System.DefaultWorkingDirectory)/modify-config.py"
arguments: --svc ${{parameters.service}}_${{parameters.environment}}
#pythonInterpreter: # Optional
#workingDirectory: # Optional
#failOnStderr: false # Optional
displayName: 'Update Config files'
modify-config.py包含以下代码:
#!/usr/bin/python
import os
import yaml
from jinja2 import Template
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--svc")
#parser.add_argument("--env")
args = parser.parse_args()
with open(r'./group_vars/args.svc.yaml') as file:
#value_list = yaml.load(file, Loader=yaml.FullLoader)
value_list = yaml.full_load(file)
目前没有回答
相关问题 更多 >
编程相关推荐