You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非流水线多配置Jenkins任务的Python脚本中使用Jenkins参数?

Jenkins多配置项目Python脚本路径读取失败解决

问题场景

  • Jenkins任务为多配置项目,Python脚本在Bash Shell中运行
  • 尝试通过Jenkins参数REPO_PATH(值为gramar/repo)读取目标路径下的JSON文件,执行时出现文件找不到错误

原代码

import json
import os

PATH = os.environ.get('REPO_PATH')

json_text = str()
with open ('PATH/file.json','r') as f:
json_text = f.read()

data = json.loads(json_text)

报错信息

Traceback (most recent call last):
File "script.py", line 9, in 
with open 'PATH/file.json', 'r') as f:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory:'PATH/file.json'

错误原因

代码中把变量PATH当成字符串字面量传入open()函数,Python会直接查找名为PATH/file.json的文件,而非使用环境变量获取到的gramar/repo路径进行拼接。

修复方案

1. 正确拼接路径

使用Python的f-string或字符串拼接,将变量值与文件名组合:

方案一(f-string,推荐)

import json
import os

repo_path = os.environ.get('REPO_PATH')

json_text = ""
with open(f'{repo_path}/file.json', 'r') as f:
    json_text = f.read()

data = json.loads(json_text)

方案二(字符串拼接)

import json
import os

repo_path = os.environ.get('REPO_PATH')

json_text = ""
with open(repo_path + '/file.json', 'r') as f:
    json_text = f.read()

data = json.loads(json_text)

2. 确认环境变量传递

在执行Python脚本前,先在Bash中打印REPO_PATH确认参数已正确传递:

echo $REPO_PATH
python script.py

内容的提问来源于stack exchange,提问作者Marta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:12:33