说明:本文介绍如何使用Python脚本在某个目录下执行Git命令

编码

直接上代码

import os
import subprocessdef open_git_bash_and_run_command(folder_path, git_command):# 检查文件夹路径是否存在if not os.path.exists(folder_path):print(f"错误:文件夹路径不存在:{folder_path}")returnif not os.path.isdir(folder_path):print(f"错误:路径不是一个文件夹:{folder_path}")return# Git Bash 的常见安装路径git_bash_paths = r""try:full_command = f'cd "{folder_path}" && {git_command}'# 执行subprocess.run([git_bash_paths, "-c", full_command],check=True  # 如果命令返回非零状态码,则抛出异常)print(f"【命令在 '{folder_path}' 中成功执行】")print("==========================================================================")except subprocess.CalledProcessError as e:print(f"命令执行失败,返回码: {e.returncode}")except FileNotFoundError as e:print(f"无法启动 Git Bash: {e}")except Exception as e:print(f"发生未知错误: {e}")if __name__ == "__main__":# 项目路径folder_path = r""# Git 命令,用三引号转义git_command_template = """git status"""# Git 命令校验,以 git 开头if not git_command_template.lower().startswith("git "):print("警告:命令似乎不是以 'git' 开头,但仍将尝试执行。")# 执行open_git_bash_and_run_command(folder_path, git_command_template)

其中,加上需要执行的目录

    # 项目路径folder_path = r"C:\Users\10765\Documents\info\code\now\easyexcel"

加上电脑上安装的 Git 执行程序的地址

    # Git Bash 的常见安装路径git_bash_paths = r"C:\Program Files\Git\bin\bash.exe"

执行,展示该目录下执行 Git 命令 git status 的返回结果

在这里插入图片描述

更近一步

来点难度的,查看多个 Git 文件夹本周一~周五的日志记录,git 命令如下:

git log --since="2025-08-25" --until="2025-08-29"

代码如下:

import os
import subprocess
from datetime import datetime, timedeltadef open_git_bash_and_run_command(folder_path, git_command):# 检查文件夹路径是否存在if not os.path.exists(folder_path):print(f"错误:文件夹路径不存在:{folder_path}")returnif not os.path.isdir(folder_path):print(f"错误:路径不是一个文件夹:{folder_path}")return# Git Bash 的常见安装路径git_bash_paths = r"C:\Program Files\Git\bin\bash.exe"try:full_command = f'cd "{folder_path}" && {git_command}'# 执行subprocess.run([git_bash_paths, "-c", full_command],check=True  # 如果命令返回非零状态码,则抛出异常)print(f"【命令在 '{folder_path}' 中成功执行】")print("==========================================================================")except subprocess.CalledProcessError as e:print(f"命令执行失败,返回码: {e.returncode}")except FileNotFoundError as e:print(f"无法启动 Git Bash: {e}")except Exception as e:print(f"发生未知错误: {e}")def get_weekdays_of_current_week():# 获取今天的日期today = datetime.today()# 计算今天是星期几 (0=Monday, 1=Tuesday, ..., 6=Sunday)weekday = today.weekday()# 计算本周一的日期# 用今天的日期减去 weekday 天,就得到周一monday = today - timedelta(days=weekday)# 生成周一到周五的日期weekdays = []for i in range(5):  # 0=Monday, 1=Tuesday, 2=Wednesday, 3=Thursday, 4=Fridayday = monday + timedelta(days=i)# 格式化为 yyyy-MM-ddformatted_date = day.strftime("%Y-%m-%d")weekdays.append(formatted_date)return weekdaysif __name__ == "__main__":# 项目路径folder_path = [r"C:\Users\10765\Documents\info\code\now\yudao-cloud",r'C:\Users\10765\Documents\info\code\now\yudao-ui-admin-vue3']# 计算日期,本周一~周五week_dates = get_weekdays_of_current_week()# Git 命令git_command_template = """git log --since={since} --until={until}"""# 使用 .format() 方法替换占位符git_command = git_command_template.format(since=week_dates[0], until=week_dates[4])# Git 命令校验,以 git 开头if not git_command_template.lower().startswith("git "):print("警告:命令似乎不是以 'git' 开头,但仍将尝试执行。")# 循环执行for i in folder_path:open_git_bash_and_run_command(i, git_command)

其中,get_weekdays_of_current_week() 用于计算本周的日期,git 命令中包含双引号的用 .format() 替换,执行效果如下,本周没有日志

在这里插入图片描述

python 脚本在 windows 系统中的好处是能和 bat 程序一样,直接双击运行,因此如果工作中有需要定期执行 git 命令的场景,可以使用写一个 python 脚本,再配置环境变量,最后就能直接在运行中敲程序文件名执行,非常方便。


如下:

给脚本所在的文件夹配置了环境变量后,敲脚本文件名执行

在这里插入图片描述

弹出展示执行结果

在这里插入图片描述

需要注意在程序末尾加这一行,不然执行窗口会一闪而过

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94950.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94950.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94950.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025docker快速部署Nginx UI可视化管理平台

1、nginx-ui简介 Nginx UI 是一个开源项目,旨在为著名的 Web 服务器和反向代理软件 Nginx 提供一个基于网页的图形化用户界面(GUI)。它的核心目标是让 Nginx 的配置和管理变得可视化、简单化和自动化,从而降低其使用门槛&#xf…

数据防泄与最小可见:ABP 统一封装行级安全(RLS)+ 列级脱敏

数据防泄与最小可见:ABP 统一封装行级安全(RLS) 列级脱敏 TL;DR:把“谁能看到哪些行、字段可见到哪一位”下沉到数据库强制层(PostgreSQL:RLS 安全视图;SQL Server:RLS DDM&#x…

网络编程 04:TCP连接,客户端与服务器的区别,实现 TCP 聊天及文件上传,Tomcat 的简单使用

一、概述 记录时间 [2025-08-29] 前置文章: 网络编程 01:计算机网络概述,网络的作用,网络通信的要素,以及网络通信协议与分层模型 网络编程 02:IP 地址,IP 地址的作用、分类,通过 …

最小生成树——Kruskal

标题什么是生成树? 对于一张无向图,由nnn个顶点和n−1n-1n−1条边构成地联通子图,叫做这个无向图 生成树 最小生成树就是指边权之和最小的生成树 如何求最小生成树? Kruskal 介绍: 存图时只存每条边地起点、终点,…

ADFS 和 OAuth 的区别

ADFS 和 OAuth 的区别 ADFS(Active Directory Federation Services)和 OAuth 都是身份认证与授权领域的技术,但它们的设计目标、应用场景和实现方式有显著区别。以下从核心定义、技术特性、应用场景等方面详细对比: 核心定义与设计目标 技术 核心定义 设计目标 ADFS 微软…

神经网络参数量计算详解

1. 神经网络参数量计算基本原理 1.1 什么是神经网络参数 神经网络的参数主要包括: 权重(Weights):连接不同神经元之间的权重矩阵偏置(Bias):每个神经元的偏置项批归一化参数:BatchNo…

手写链路追踪

1. 什么是链路追踪 链路追踪是指在分布式系统中,将一次请求的处理过程进行记录并聚合展示的一种方法。目的是将一次分布式请求的调用情况集中在一处展示,如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等。这样就可以轻松了解…

从零开始的python学习——常量与变量

ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 个人主页:励志不掉头发的内向程序员; 专栏主页:python学习专栏; 文章目录 前言 一、常量和表达式 二、变量类型 2.1、什么是变量 2.2、变量语法 (1&a…

基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

1 系统功能介绍 本设计是一套 基于51单片机的环境监测系统,能够实时采集环境光照、PM2.5、温湿度等参数,并通过 2.4G无线模块 NRF24L01 实现数据传输。系统具备本地显示与报警功能,可通过按键设置各类阈值和时间,方便用户进行环境…

【Flask】测试平台开发,产品管理实现添加功能-第五篇

概述在前面的几篇开发文章中,我们只是让数据在界面上进行了展示,但是没有添加按钮的功能,接下来我们需要开发一个添加的按钮,用户产品功能的创建和添加抽公共数据链接方法添加接口掌握post实现和请求数据处理前端掌握Button\Dilog…

循环高级(2)

6.练习3 打印九九乘法表7.练习3 制表符详解对齐不了原因:name补到8zhangsan本身就是8,补完就变成16解决办法:1.去掉zhangsan\t,这样前后都是82.name后面加2个\t加一个\t,name\t就是占8个,再加一个\t,就变成…

盒马生鲜 小程序 逆向分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 部分python代码 params {&…

【Linux系统】线程控制

1. POSIX线程库 (pthreads)POSIX线程(通常称为pthreads)是IEEE制定的操作系统线程API标准。Linux系统通过glibc库实现了这个标准,提供了创建和管理线程的一系列函数。核心特性命名约定:绝大多数函数都以 pthread_ 开头&#xff0c…

【Spring Cloud Alibaba】前置知识

【Spring Cloud Alibaba】前置知识1. 微服务介绍1.1 系统架构的演变1.1.1 单体应用架构1.1.2 垂直应用架构1.1.3 分布式架构1.1.3.1 SOA架构1.1.4 微服务架构1. 微服务介绍 1.1 系统架构的演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致…

2025互联网大厂Java面试1000道题目及参考答案

Java学到什么程度可以面试工作? 要达到能够面试Java开发工作的水平,需要掌握以下几个方面的知识和技能: 1. 基础扎实:熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础,也…

记录:HSD部署(未完成)

建数据库 相关文档:Confluence准备:CA文件和备份用的aws key。 CA文件:在namespace添加trust-injectionenabled的标签,会自动生成。 aws key:生成cnpg-backup-creds的secret。安装: 从git仓库获取values模…

【AI】提示词与自然语言处理:从NLP视角看提示词的作用机制

提示词与自然语言处理:从 NLP 视角看提示词的作用机制在人工智能快速发展的今天,大模型成为了人们关注的焦点。而要让大模型更好地理解人类意图、完成各种任务,提示词扮演着关键角色。从自然语言处理(NLP)的角度来看&a…

2025.8.29机械臂实战项目

好久没给大家更新了,上周末大学大四开学,所以停更了几天,回来后在做项目,接下来的几篇文章,给大家带来几个项目,第一个介绍的是机械臂操作,说是机械臂操作,简单来说,就是…

【机器学习基础】机器学习的要素:任务T、性能度量P和经验E

第一章 机器学习的本质与理论框架 机器学习作为人工智能领域的核心支柱,其理论基础可以追溯到20世纪中叶的统计学习理论。Tom Mitchell在其1997年的经典著作《Machine Learning》中给出了一个至今仍被广泛引用的学习定义:"对于某类任务T和性能度量P,一个计算机程序被认…

wav音频转C语言样点数组

WAV to C Header Converter 将WAV音频文件转换为C语言头文件的Python脚本,支持将音频数据嵌入到C/C项目中。 功能特性 音频格式支持 PCM格式:支持8位、16位、24位、32位PCM音频IEEE Float格式:支持32位浮点音频多声道:支持单声道、…