Python實現自動推本地github博客到遠程倉庫

Python實現自動推本地github博客到遠程倉庫

以前的簡單版本

通過python中的os模塊操作系統命令
詳情可參考:Python實現一行代碼推本地git到遠程倉庫

升級版本

本次加入了監聽文件修改功能
這樣腳本只需在后臺運行,即可檢測到對應的文件夾中的內容是否變化

如果變化,則調用自動push函數,即可實現推本地倉庫到遠程中

依賴庫的配置

這里我們需要用到一個庫watchdog

關于它的安裝和使用可以參考:python中文件變化監控-watchdog

代碼如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Created by victor# 本模塊的功能:<檢測文件夾變化># 導入watchdog對應模塊
from watchdog.observers import Observer
from watchdog.events import *
# 導入時間模塊
import time
# 導入系統模塊
import osdef push(change):print('-'*76)os.system('git add .')os.system('git commit -m\"auto'+change+'\"')os.system('git push -u origin master')print('-'*76)class FileEventHandler(FileSystemEventHandler):# 初始化魔術方法def __init__(self):FileSystemEventHandler.__init__(self)# 文件或文件夾移動def on_moved(self, event):if event.is_directory:print("directory moved from {0} to {1}".format(event.src_path, event.dest_path))else:print("file moved from {0} to {1}".format(event.src_path, event.dest_path))# 這里我們只判斷文件修改,如需加入文件夾修改,只需在上面的if條件中調用push函數即可push("文件移動: {0} to {1}".format(event.src_path, event.dest_path))# 創建文件或文件夾def on_created(self, event):if event.is_directory:print("directory created:{0}".format(event.src_path))else:print("file created:{0}".format(event.src_path))push("創建文件:{0}".format(event.src_path))# 刪除文件或文件夾def on_deleted(self, event):if event.is_directory:print("directory deleted:{0}".format(event.src_path))else:print("file deleted:{0}".format(event.src_path))push("刪除文件:{0}".format(event.src_path))# 移動文件或文件夾def on_modified(self, event):if event.is_directory:print("directory modified:{0}".format(event.src_path))else:print("file modified:{0}".format(event.src_path))push("文件修改:{0}".format(event.src_path))if __name__ == "__main__":# 實例化Observer對象observer = Observer()event_handler = FileEventHandler()# 設置監聽目錄dis_dir = "./_posts/"observer.schedule(event_handler, dis_dir, True)observer.start()try:while True:# 設置監聽頻率(間隔周期時間)time.sleep(1)except KeyboardInterrupt:observer.stop()observer.join()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455417.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

H.264/MPEG-4 AVC

維基百科&#xff0c;自由的百科全書跳轉到&#xff1a; 導航, 搜索 跳過字詞轉換說明 漢漢▼▲為了閱讀方便&#xff0c;本文使用全文手工轉換。轉換內容&#xff1a;本文采用電腦和信息技術組全文轉換 [查看] ? [編輯] ? [強制刷新] 以下為本條目單獨的全文轉換&#xff0c…

JavaScript 專題之函數柯里化

JavaScript 專題系列第十三篇&#xff0c;講解函數柯里化以及如何實現一個 curry 函數 定義 維基百科中對柯里化 (Currying) 的定義為&#xff1a; In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes m…

機器學習模板

根據心情補充&#xff0c;語言都是Python hash&#xff0c;把所有的文本轉化成數字 from sklearn.preprocessing import LabelEncoder for c in train.columns:if train[c].dtype object:lbl LabelEncoder()lbl.fit(list(train[c].values) list(test[c].values))train[c] l…

漂亮特殊字體可復制_12個創意字體免費下載網站

今天為大家介紹12個創意字體的網站&#xff0c;這些網站都有提供免費下載的字體哦&#xff0c;希望對大家在創作上面有所幫助。FontSpace在Fontspace上有超過42000種免費字體。在這里字體被整齊的分門歸類&#xff0c;幫助你找到想要的字體。除了典型的“serif” “script”等&…

使用postman測試接口

Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。在java web開發中使用非常多&#xff0c;經常用來測試接口。 使用postman模擬json數據的發送 第一步:在header里邊設置發送數據的類型 Paste_Image.png設置發送數據類型為json&#xff0c;也就是key為Content-…

刪除github上的commit歷史記錄

刪除github上的commit歷史記錄 起步 今天小編發現了git克隆下來的遠程庫特別大: 經過查詢之后發現是每次推送之后都會留下記錄緩存&#xff0c;這樣很多沒用的記錄就會占用多余的空間&#xff0c;別人克隆的時候也會多耗費時間&#xff0c;今天我查到了一個清除無用記錄的方…

DirectShow組件原理分析及應用

1 DirectX簡介  DirectX是Microsoft公司為游戲和其他高性能多媒體應用所提供的一套底層應用程序編程接口。這些接口包括對二維和三維圖形&#xff0c;聲效和音樂&#xff0c;輸入設備以及多玩家網絡游戲等的支持。目前DirectX的最高版本是DirectX 9.0。  1.1 DirectX的組成…

接口安全

老大發了篇文章&#xff0c;讓看如何寫出安全的接口。 如何寫出安全的API接口&#xff1f;接口參數加密簽名設計思路轉載于:https://www.cnblogs.com/Tpf386/p/7053795.html

python中xml模塊_python學習第十五天-2(XML模塊)

也是一種文本轉換形式。importxxxxxxxxxxxxxxxxxxx asxx,可以用xx代替xxxxxxxxxxxxxxxxxxx模塊xml文件的新增&#xff0c;修改&#xff0c;刪除&#xff0c;查詢。新增&#xff1a;?import xml.etree.ElementTreeas ET?new_xmlET.Element(nameList)#創建xml的根節點相當于na…

ubuntu系統下Java環境JDK的安裝

Debian Linux下安裝jdk 下載壓縮包 官網下載對應的.gz包 點擊下載 解壓文件 創建一個目錄用于存放解壓后的文件&#xff0c;并解壓縮到該目錄下 sudo mkdir /opt/java8 sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/java8修改環境變量 sudo vim ~/.bashrc 進入…

棧溢出筆記1.3 準備Shellcode

經過1.1和1.2節的講述&#xff0c;我們已經知道了怎樣更改EIP的值。程序運行函數之后將跳轉到我們設定的位置開始運行&#xff0c;因此&#xff0c;我們須要準備一個自己的程序&#xff0c;接手后面的工作。這是一個什么樣的程序&#xff1f;是一個C語言編寫的代碼&#xff1f;…

DirectShow開發快速入門之慨述

文章來源&#xff1a;http://tech.163.com/school 2005-08-18 10:21:32 來源: 天極網摘要&#xff1a;本篇文檔概括性的介紹了DirectShow的主要組成部分&#xff0c;以及一些Directshow的基本概念。熟悉這些基本的知識對于Directshow的應用開發或者過濾器的開發者都會有所幫助…

Android selector中的item的順序

在selector中&#xff0c;要將默認狀態的item放在最后面&#xff0c;因為一旦前面的item滿足匹配條件&#xff0c;后面的item就不會去匹配。因此&#xff0c;把默認狀態的item放在前面的話&#xff0c;后面的item沒有執行的機會轉載于:https://www.cnblogs.com/xiaoyuersdch/p/…

權限表使用聯合主鍵嗎_天天寫 order by,你知道Mysql底層執行流程嗎?

前言 在實際的開發中一定會碰到根據某個字段進行排序后來顯示結果的需求&#xff0c;但是你真的理解order by在 Mysql 底層是如何執行的嗎&#xff1f;假設你要查詢城市是蘇州的所有人名字&#xff0c;并且按照姓名進行排序返回前 1000 個人的姓名、年齡&#xff0c;這條 sql 語…

nodejs簡介

nodejs是啥&#xff1f; Node.js是運行在服務端的JavaScript。 Node.js是一個基于Chrome JavaScript運行時建立的一個平臺。 Node.js是一個事件驅動I/O服務端JavaScript環境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎執行Javascript的速度非常快&#xff0c;性能非常…

jumpserver v0.4.0 基于 CenOS7 的安裝詳解

標簽&#xff08;linux&#xff09;&#xff1a; jumpserver 筆者Q:972581034 交流群&#xff1a;605799367。有任何疑問可與筆者或加群交流 首首先使用Jumpserver前要理解清楚這三個用戶關系: 1.用戶&#xff1a; 是指你在web上創建的用戶,會在跳板機上創建這個用戶,作用就是用…

Node.js中事件的循環

Node.js 事件循環 Node.js 是單進程單線程應用程序&#xff0c;但是通過事件和回調支持并發&#xff0c;所以性能非常高。 Node.js 的每一個 API 都是異步的&#xff0c;并作為一個獨立線程運行&#xff0c;使用異步函數調用&#xff0c;并處理并發。 Node.js 基本上所有的事…

python爬boss網站_python之requests爬蟲Boss數據

python之requests爬蟲Boss數據需要用到的庫&#xff1a;reqeusts、lxml沒有的可以用直接下載pip install requestspip install lxm這里以python崗位&#xff0c;地點北京為例爬取的數據就是崗位名稱、薪資、地點 首先導入需要用到的模塊import requestsfrom lxml import etree崗…

live555源代碼簡介

文章出自&#xff1a;http://blog.csdn.net/imliujie/archive/2008/01/30/2072657.aspx live555源代碼簡介liveMedia項目的源代碼包括四個基本的庫&#xff0c;各種測試代碼以及IVE555 Media Server。四個基本的庫分別是UsageEnvironment&TaskScheduler&#xff0c;groups…

并發無鎖隊列學習(單生產者單消費者模型)

1、引言 本文介紹單生產者單消費者模型的隊列。依據寫入隊列的內容是定長還是變長&#xff0c;分為單生產者單消費者定長隊列和單生產者單消費者變長隊列兩種。單生產者單消費者模型的隊列操作過程是不須要進行加鎖的。生產者通過寫索引控制入隊操作&#xff0c;消費者通過讀索…