谁还在用周报,Python小工具一键改写,时代潮流你跟上了吗?

2026-04-11 13:211阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计796个文字,预计阅读时间需要4分钟。

谁还在用周报,Python小工具一键改写,时代潮流你跟上了吗?

起航:新跳槽到一家公司,没想到第一个挑战居然是每周都要发周报。告诉老板这周都干了些什么是下周准备干些什么。我记性不好,经常忘事。所以很多时侯周报都会忘记发送。于是,就决定‘决绝’。

缘起: 新跳槽到一家公司, 没想到第一个挑战居然是每周都要发周报. 告诉老板这周都干了些什么和下周准备干什么. 我记性不好, 常常忘事儿.
所以很多时候周报都会忘记发送. 于是, 就决定写一个小工具好了.

Github: Weekday 小工具

提出目标: (jq.qq.com/?_wv=1027&k=zLK3I0M5)
  • 我想有一个工具能发邮件
目标细化 (jq.qq.com/?_wv=1027&k=zLK3I0M5)
  • SMTP发送邮件, 用smtplib
  • 读取配置文件
  • 发件人
  • 收件人
  • 抄送到哪些人
  • 我的账户, 密码, 昵称
  • 参数化命令行, 用argparse
  • 支持markdown to HTML
脑补使用方式

简单使用方式

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

复杂使用

cmd -e -p # 激活vim, 然后:wq之后继续cmd执行, 就向git commit -a, 不过要打印success

忘了自己写的程序怎么用python学习交流群:660193417 ###

cmd -h # 打印帮助信息 设计程序 (jq.qq.com/?_wv=1027&k=zLK3I0M5)

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

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

能在python脚本在执行时, 读去到这个配置文件python学习交流群:660193417 ###

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

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

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小工具一键改写,时代潮流你跟上了吗?

# main.py def main(): args = loadArguments() if args.version: print DESC if args.append: append(args.append, tmpFileName) // ... other code ... if __name__ == '__main__': main() Let’s go

python main.py -a Hello -p

最后只需要配合crontab工具, 就可以实现周期性定时发送了.python学习交流群:660193417 ###

# 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

本文共计796个文字,预计阅读时间需要4分钟。

谁还在用周报,Python小工具一键改写,时代潮流你跟上了吗?

起航:新跳槽到一家公司,没想到第一个挑战居然是每周都要发周报。告诉老板这周都干了些什么是下周准备干些什么。我记性不好,经常忘事。所以很多时侯周报都会忘记发送。于是,就决定‘决绝’。

缘起: 新跳槽到一家公司, 没想到第一个挑战居然是每周都要发周报. 告诉老板这周都干了些什么和下周准备干什么. 我记性不好, 常常忘事儿.
所以很多时候周报都会忘记发送. 于是, 就决定写一个小工具好了.

Github: Weekday 小工具

提出目标: (jq.qq.com/?_wv=1027&k=zLK3I0M5)
  • 我想有一个工具能发邮件
目标细化 (jq.qq.com/?_wv=1027&k=zLK3I0M5)
  • SMTP发送邮件, 用smtplib
  • 读取配置文件
  • 发件人
  • 收件人
  • 抄送到哪些人
  • 我的账户, 密码, 昵称
  • 参数化命令行, 用argparse
  • 支持markdown to HTML
脑补使用方式

简单使用方式

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

复杂使用

cmd -e -p # 激活vim, 然后:wq之后继续cmd执行, 就向git commit -a, 不过要打印success

忘了自己写的程序怎么用python学习交流群:660193417 ###

cmd -h # 打印帮助信息 设计程序 (jq.qq.com/?_wv=1027&k=zLK3I0M5)

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

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

能在python脚本在执行时, 读去到这个配置文件python学习交流群:660193417 ###

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

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

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小工具一键改写,时代潮流你跟上了吗?

# main.py def main(): args = loadArguments() if args.version: print DESC if args.append: append(args.append, tmpFileName) // ... other code ... if __name__ == '__main__': main() Let’s go

python main.py -a Hello -p

最后只需要配合crontab工具, 就可以实现周期性定时发送了.python学习交流群:660193417 ###

# 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