如何实现GitHub自动提交本地Python脚本生成的TXT文件?
实现方案
1. 准备GitHub仓库
- 在GitHub上创建一个空仓库(不要勾选初始化README、.gitignore等选项)
- 复制仓库的SSH或HTTPS地址(推荐用SSH,避免每次提交输入密码)
2. 台式机配置Git
- 安装Git,完成后打开命令行执行以下配置:
git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub绑定邮箱" - 若用SSH方式:生成SSH密钥并添加到GitHub账户(本地执行
ssh-keygen -t ed25519 -C "你的邮箱",一路回车,然后把~/.ssh/id_ed25519.pub的内容复制到GitHub的SSH密钥设置里) - 若用HTTPS方式:设置Git记住密码,避免每次提交输入:
git config --global credential.helper store
3. 初始化本地Git仓库
- 打开命令行,切换到Python脚本所在的文件夹,执行:
git init git remote add origin 你的GitHub仓库地址 # 先手动提交一次初始文件(比如脚本本身) git add . git commit -m "initial commit" git push -u origin main # 若仓库默认分支是master则替换为master
4. 自动提交输出文件到GitHub
有两种方式可选:
方式一:修改Python脚本,在生成TXT后自动执行Git操作
在你的Python脚本末尾添加以下代码(替换成你的输出TXT文件名):
import subprocess import os # 切换到脚本所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) os.chdir(script_dir) try: # 添加输出文件到Git暂存区 subprocess.run(["git", "add", "你的输出文件名.txt"], check=True) # 提交更改(允许空提交,避免文件无变化时报错) subprocess.run(["git", "commit", "-m", "每日计算结果更新", "--allow-empty"], check=True) # 推送到GitHub subprocess.run(["git", "push", "origin", "main"], check=True) print("文件已成功推送到GitHub") except subprocess.CalledProcessError as e: print(f"推送失败: {e}")
方式二:写独立脚本(批处理/Shell),与原Python脚本配合
如果不想修改原脚本,可以写一个批处理文件(Windows)upload_to_github.bat:
@echo off cd /d "你的脚本文件夹完整路径" git add 你的输出文件名.txt git commit -m "每日计算结果更新" --allow-empty git push origin main
然后让原Python脚本运行完后调用这个批处理,或者直接把批处理加入定时任务(需确保先运行Python脚本,再执行批处理)
5. 设置定时任务自动执行
- Windows系统:打开「任务计划程序」,创建基本任务:
- 触发条件设为「每日」,选择你想要的执行时间
- 操作选择「启动程序」,程序/脚本选择Python解释器路径(比如
C:\Python39\python.exe),添加参数为你的脚本完整路径(比如"D:\scripts\your_script.py") - 勾选「不管用户是否登录都要运行」,并设置合适的权限,确保任务能正常访问网络和文件
注意事项
- 台式机要保持开机联网,否则定时任务无法推送到GitHub
- 如果输出文件名是动态的(比如带日期,如
result_20240520.txt),可以用通配符git add *.txt,但要确保文件夹里只有需要提交的TXT文件 - 可以在脚本中添加日志记录,方便排查推送失败的问题
内容的提问来源于stack exchange,提问作者Sean L
相关产品推荐
相关产品推荐

