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()
Python实现自动推本地github博客到远程仓库相关推荐
- [自制工具]实现自动推送Hexo博客文章至百度
写在前面 我们在博客发布文章时,总是希望百度能尽快收录我们的文章,但是如果傻傻等百度爬虫爬到我们这种小站点的文章--不知道要等到何年何月= =基于此,百度站长平台提供了主动推送文章至百度的接口.但是这 ...
- github博客自动同步到gitee(保姆级教程)
github博客自动同步到gitee(保姆级教程) 前言: 由于国内网访问github实在太慢!虽然在公司可以连接外网访问还算可以,但是回学校想看看博客或者分享给别人的时候经常会崩掉!于是我想可不可以 ...
- 免费的Github博客搭建(python+pelican)
每个入门程序员或多都想拥有一个自己博客站点,苦于高额的服务器费用和较为麻烦的操作步骤,你完全可以通过 GitHub Pages来实现一个免费,可定制的书写,记录生活,技术分享的平台. 为什么使用 Gi ...
- Hexo+Github: 博客网站搭建完全教程(看这篇就够了)
本篇教程首次发布在个人博客:sunhwee.com,想要获得最佳阅读体验,欢迎前往,建议用电脑查看教程文档. 文章目录 阅读须知 博客开源 前言 第一部分 搭建 Hexo搭建步骤 1. 安装Git 2 ...
- 30分钟(零成本)快速搭建markdown个人github博客
零成本-30分钟快速搭建markdown个人github博客 摘要:本文以mkdocs 开源文档工具 + markdown预发编写文档,最终生成简易个人github博客.最终效果如:https://s ...
- 转:20分钟教你使用hexo搭建github博客
注册Github账号 这里我们就不多讲了,小伙伴们可以点击这里,进入官网进行注册. 创建仓库 图片来自Github 登录账号后,在Github页面的右上方选择New repository进行仓库的创建 ...
- 利用Octopress搭建一个Github博客
小引 Octopress是利用Jekyll博客引擎开发的一个博客系统,生成的静态页面能够很好的在github page上展现.号称是hacker专属的一个博客系统(A blogging framewo ...
- Hexo+GitHub 博客部署 个人踩坑记录(一)
Hexo+GitHub 博客部署 个人踩坑记录(一) 前言 博客的作用 编程学习本身是持续性的学习行为,说明所学习的内容是在持续地增加.这要求我们要学会阶段性总结自己所学的东西,复习并巩固.所以写文章 ...
- 实现在CentOS7环境下搭建个人github博客
实现在CentOS7环境下搭建个人github博客 主机要求:必须是centos环境版本可以不一样,假如你用的是其他版本的linux系统,只不过是命令不太一样. Tips:这里提前说下,对于Ubunt ...
最新文章
- Delphi - 我的代码之窗体移动
- 黄聪:SQL server 2005高可用性之----数据库镜像
- 30岁二刷博士,17个月发6篇一作获顶会最佳!现实版人生重开模拟器
- python怎么让x轴45°展示_python opencv实现任意角度的透视变换实例代码
- 三角网导线平差实例_网平差三角网三边导线网.doc
- Windows Embedded CE 6.0开发初体验(四)跑个应用程序先
- 网络事件触发自己主动登录
- 回顾Swift 3,展望Swift 4
- 【编译原理笔记14】中间代码生成:布尔表达式的回填,控制流语句的回填,switch语句的翻译,过程调用语句的翻译
- 【实践】HMM模型在贝壳对话系统中的应用
- 符号“”和const在函数里不同位置的用法
- Redhat8认证考试(第三题)
- iphone8进入恢复模式或DFU模式
- Heaven of Imaginary(PKUSC2018)
- 下载Eclipse压缩包
- 华为mate30pro和华为p40pro哪个好
- UML 有几种关系图标
- 萌新linux的基础笔记
- 短视频脚本撰写小技巧,不同的短视频类型要使用不同的撰写方法
- 论信息系统人力资源管理
热门文章
- 如何读H.264的标准和代码
- 解决:[ERROR] Error executing Maven. [ERROR] 1 problem was encountered while building the effective set
- IntelliJ Idea 2017 免费激活方法
- RabbitMQ MQTT协议和AMQP协议
- 深度优先遍历解决连通域求解问题-python实现
- CSS中的px与物理像素、逻辑像素、1px边框问题
- 解决Coldfusion连接MySQL数据库的问题
- Safengine Android so加密
- [Grid Layout] Place grid items on a grid using grid-column and grid-row
- gulp教程之gulp-minify-css【gulp-clean-css】