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

如何在GitHub Actions中使用Python写入文件?

解决GitHub Actions中Python写入文件无效果的问题

常见原因及对应解法

1. 工作目录路径不匹配

GitHub Actions默认工作目录是仓库根目录,若你的代码使用了相对路径,可能和本地环境的路径结构不一致。先打印当前目录确认路径:

import os
print(os.getcwd())

确保写入的path是相对于该工作目录的正确路径,或直接使用绝对路径。

2. 文件未在步骤间保留

如果写入操作在某个job中,后续步骤需要访问该文件时,必须用actions/upload-artifact保存文件,否则job结束后文件会被自动清理。示例:

- name: 保存生成的文件
  uses: actions/upload-artifact@v4
  with:
    name: my-target-file
    path: ./your-file-path.txt

若仅在同一个job的后续步骤使用,只需保证路径正确即可,无需上传;跨job访问则必须执行上传操作。

3. 目录权限不足

GitHub Actions运行环境中,部分系统级目录可能无写入权限,优先选择仓库目录内的路径写入。若需写入其他目录,可先修改权限:

- name: 调整目录写入权限
  run: sudo chmod 777 /target-directory

4. Python代码的稳定性问题

你的代码未使用上下文管理器,若发生异常可能导致文件未正确关闭写入。建议改用更安全的写法:

def write(path, text):
    with open(path, 'w') as file:
        file.write(text)

with语句会自动处理文件关闭,即使出现异常也能保证写入操作完成。

完整Workflow示例

name: 写入文件测试
on: [push]

jobs:
  write-file-job:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取仓库代码
        uses: actions/checkout@v4

      - name: 执行Python写入逻辑
        run: |
          python3 -c "
          def write(path, text):
              with open(path, 'w') as file:
                  file.write(text)
          write('test-output.txt', 'Hello from GitHub Actions!')
          "

      - name: 验证文件内容
        run: cat test-output.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:03:14