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

如何在GitHub Actions中保存Python函数的输出结果?

解决GitHub Action中捕获Python函数输出的问题

问题根源

Python函数的return值不会自动输出到终端的标准输出(stdout),而GitHub Action里的命令替换$(...)、环境变量赋值都是基于捕获stdout内容实现的。你之前的代码只是调用了example()但没把返回值输出,所以自然拿不到任何内容。

第一步:修改Python代码

必须把函数的返回值打印到stdout,才能让GitHub Action捕获到。修改你的test.py:

def example():
    return "a"

if __name__ == "__main__":
    # 把返回值打印出来,输出到stdout
    print(example())

第二步:在GitHub Action中保存到变量

这时候你原来的写法就能生效了,注意echo时加引号避免特殊字符被解析:

- name: Check renamed files
  run: |
    INPUT_STORE=$(python3 test.py)
    # 加双引号保留输出的格式(比如换行)
    echo "$INPUT_STORE"

第三步:保存到环境变量(支持单行/多行输出)

如果要把输出存入环境变量供后续步骤使用,分两种情况处理:

单行输出

直接用命令替换赋值:

- name: Set env variable (single line)
  run: echo "MY_STRING=$(python test.py)" >> $GITHUB_ENV

多行输出

用EOF语法避免换行被截断,注意格式要正确:

- name: Set env variable (multi line)
  run: |
    echo "MY_STRING<<EOF" >> $GITHUB_ENV
    # 直接把Python的输出追加到环境变量文件
    python test.py >> $GITHUB_ENV
    echo "EOF" >> $GITHUB_ENV

纠正你之前的错误写法

你尝试的MY_STRING="{$(python test.py }})} EOF"存在语法错误,多余的括号会导致命令执行失败,而且EOF的位置也不对,按照上面的写法就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:20:35