【学习者日记】利用git判断文件是否变化、Python发送邮件

利用git判断文件是否变化

现在有这么一个需求,我需要从Git仓库中获取某个json文件,并将有变化的内容进行获取。很容易想到使用workflow运行一个定时任务,但是怎么检测文件是否发生变化,和获取变化的内容就可以用到git了。
通过git diff命令即可实现,假设需要检测的json文件为data.json
首先,需要将目标文件下载下来,可以git clone后,将目标的json文件拷贝到当前目录下。
然后通过git diff HEAD命令,即可比较当前文件与之前提交到仓库的最新版本进行比较。
这样会输出变化的内容,但是有的时候,我们只需要知道是否发生变化,加上--quiet参数即可。这样就会在有变化的时候,返回1,没有变化的时候返回0。
通过以下方式即可实现:

if git diff-index --quiet HEAD; then
  echo "No changes to commit"
else
  # do something when change
fi

更多的时候会使用git diff-index,猜测可能是因为效率问题 / 习惯问题吧。

使用Python发送邮件

推荐使用封装好的Python库yagmail,获取好授权码之后,填入相关信息就好了,非常的方便。

import yagmail

# 邮箱设置
sender_email = os.environ['FROM_MAIL']
sender_password = os.environ['FROM_MAIL_PWD']

# 创建 yagmail 客户端
yag = yagmail.SMTP(sender_email, sender_password, host='smtp.qq.com', port=465)

yag.send(
    to="example@qq.com",
    subject="邮件主题",
    contents=content.replace('\n','') # 内容,替换掉\n,是因为发送HTML时,\n也会展示出来,所以导致大片的空白
)

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值