使用Python腳本執行Git命令

說明:本文介紹如何使用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位浮點音頻多聲道:支持單聲道、…