用Python实现自动发送周报给老板,强制周报不用愁

news/2024/7/21 12:41:30 标签: vim, 编辑器, linux

前言

老板每周要求写周报上交?

像我这种记性不好的,一个月四周忘记三次

只能用点小技术,用Python写个小工具,让它每周帮我给老板发周报~

Github: Weekday 小工具

目标细化

  • SMTP发送邮件, 用smtplib

  • 读取配置文件

  • 发件人

  • 收件人

  • 抄送到哪些人

  • 我的账户,密码, 昵称

  • 参数化命令行,用argparse

  • 支持markdown to HTML

简单使用

cmd -a "工作内容" -p # 打印success

复杂使用

cmd -e -p # 激活vim, 然后:wq之后继续cmd执行, 就向git commit -a, 不过要打印success
~~~python
忘了自己写的程序怎么用
~~~python
cmd -h # 打印帮助信息

设计程序

有一个临时文件, 用来存放记录. 每次发送邮件之后, 将临时文件归档处理.

# 临时文件, 存在~/.weekday/current.rp
[global]
editor = vim
[to]
email = 
cc = 
[from]
email = 
password = 
nickname = 
[SMTP]
host = smtp.exmail.qq.com

能在python脚本在执行时, 读去到这个配置文件

# 获取配置项示例
import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open('文件名'))
defaultEditor = confg.get('global', 'editor') # 返回vim

可以解析在执行命令时传入的参数

python学习交流Q裙 261823976###
import argparse
parser = argparse.ArgumentParser(
    description='Tell your leader what you did this week')
# define command line parameters
parser.add_argument('-v', '--version',
                    action='store_true',
                    help='show the version information')
parser.add_argument('-e', '--edit',
                    action='store_true',
                    help='open default editor for editing report')
args = parser.parse_args()
print args

准备发送邮件, 先把markdown转成HTML, 然后使用smtplib发送邮件.

import smtplib
import mistune
from email.mime.text import MIMEText
content = mistune.markdown(content, escape=True, hard_wrap=True)
msg = MIMEText(content, 'html', 'utf-8')
msg['Subject'] = u'工作周报 %s\r\n' % date
msg['From'] = hFrom
msg['To'] = hTo
msg['Cc'] = hCc
smtp = smtplib.SMTP(conf['host'])
smtp.login(conf['from_email'], conf['password'])
smtp.sendmail(conf['from_email'],
              TO_ADDR + CC_ADDR,
              msg.as_string())
smtp.close()

开始写代码

源码.资料.素材.点击领取即可

细分功能实现的关键代码都已经整理好了. 现在只需要通过一串逻辑将她们联系起来. 看上去就能完成目标了.

python学习交流Q裙 261823976###
# main.py
def main():
    args = loadArguments()
    if args.version:
        print DESC
    if args.append:
        append(args.append, tmpFileName)
    // ... other code ...
if __name__ == '__main__':
    main()
python main.py -a Hello -p

最后只需要配合crontab工具, 就可以实现周期性定时发送了

# crontab -l
SHELL=/bin/zsh
PATH=/usr/local/bin
HOME=/Users/qiuwei
# run tasks
# minute hour day month week command
0 18 * * 5 wp -p

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇


http://www.niftyadmin.cn/n/66770.html

相关文章

Echarts 修改雷达图背景分割面,分割线颜色,设置数据线颜色

第016个点击查看专栏目录Echarts的雷达图背景可以是圆形的,也可以是多边形的,背景颜色,线条颜色都可以做个性化设置,这里是改变背景灰色,设置为浅红色。分割线也变成浅蓝色。同时数据线的颜色也变成了亮色。参考源代码…

IDEA根据wsdl生成java代码(Generate Java Code from WSDL)以及乱码问题的解决

目录 一、根据wsdl生成java代码 1、创建待存放java代码的目录,点击“帮助”>“查找操作”,打开查找窗口; 2、输入wsdl并查找,点击“从WSDL生成Java代码”,打开新的窗口; 3、选择wsdl文件&#xff0c…

[datawhale202302]CS224W图机器学习:图机器学习导论

结论速递 💡 本次task是图机器学习的导论,围绕了几个问题展开: 图机器学习的动机:图数据是有关联的数据,在现实生活中的例子;图机器学习与传统机器学习的区别,难点有哪些。图机器学习的基本概…

关于基线长度对双天线GNSS测姿精度的影响

文章目录一、GNSS测姿原理1. 载波相位双差求解基线向量2. GNSS姿态角表示二、基线长度对GNSS测姿精度的影响三、GNSS定向产品精度描述实例四、参考文献在GNSS定向模块或者板卡的指标参数中,我们一般会看到航向的测量精度和基线的长度相关。在实际使用,用…

Java实现定时发送邮件

特别说明&#xff1a;邮件所采用的均为QQ邮件 一、邮箱准备 作为发送方&#xff0c;需要开启相关服务。 首先打开邮箱&#xff0c;然后选择设置&#xff0c;再选择账户 开启以下服务 我们可以在这里获取邮箱的授权码。 二、项目准备 2.1、依赖引入 <dependencies>…

快速部署私有云笔记,免费享受多端同步

一、老Q笔记之一路坎坷 市面上的笔记软件非常多&#xff0c;有些是本地编辑功能特别强大但是不支持云同步&#xff0c;有些是支持上云但是编辑功能不够完善。选择一款合适的云笔记软件&#xff0c;无疑能让我们工、学习的时候更加顺心、顺手。 这么多年来老Q使用过很多云笔记…

复杂美科技多项区块链技术产品被纳入《2021-2022区块链产业图谱》区块链蓝皮书

2022年9月3日&#xff0c;由中国社会科学院社会科学文献出版社、北京金融科技产业联盟指导&#xff0c;北京区块链技术应用协会&#xff08;BBAA&#xff09;主办的 “Web 3.0发展趋势高峰论坛暨2022元宇宙、区块链、金融科技蓝皮书发布会” 在服贸会上成功举办。 大会隆重发布…

Fiddler使用笔记(柠檬班)

Fiddler笔记 内部功能 Replay 重放请求。 号 移除请求&#xff0c;可以通过Shift Delete来选择要保存的请求&#xff0c;其他的都删掉。 Go 断点的时候使用&#xff0c;作用是转到下一步。 Stream 流模式&#xff0c;一般不用它。 Decode 用于解码信息。通常对响应…