最近一周写了两个类,第一个类是用Python实现一个渐进色填充图片,对任意一条与x轴围成一个闭合曲面的曲线都可以实现渐进色填充。第二个类就是方便跑大程序的时候自动监督程序,然后程序跑完之后得到的数据自动压缩成一个压缩包,然后自动发送到自己的邮箱上去。具体的效果以及部分核心代码等有空的时候进行补充,基本上写这些类就是给自己图一个方便。先把渐进色填充的目标图片发出来。
渐进色填充代码已经完美实现了,同时还实现了一些调参的功能,能够直观的滑动参数条现实对应的图像,等今天下午更新一下。现在先把自动发邮件的代码附上,同时稍微解释一下其怎么实现的,代码如下:
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
import zipfile
import smtplib
import os
import datetime
class Email:
"""from_mail: 发送者的邮箱 (字符串形式)mail_pass: 发送者邮箱的授权码 (字符串形式)注意:授权码不是登录密码,需要自己在邮箱开启,可以百度邮箱授权码to_mail: 收件人的邮箱 (列表类似,[字符串1,字符串2,...],每个字符串都是一个邮箱)dir_path: 需要压缩的文件夹路径 (字符串形式,路径是用这种/斜杠)outFullName: 压缩文件保存的路径+压缩文件名称(如Name.rar) (字符串形式)content: 邮件正文内容 (字符串形式)topic: 邮件主题 (字符串形式)"""
def __init__(self, from_mail, mail_pass, to_mail, dir_path, outFullName, content, topic):
self.from_mail = from_mail
self.mail_pass = mail_pass
self.to_mail = to_mail
self.dir_path = dir_path
self.outFullName = outFullName
self.content = content
self.topic = topic
self.zip_dir()
self.send_mail()
def zip_dir(self):
"""压缩指定文件夹"""
testcase_zip = zipfile.ZipFile(self.outFullName, 'w', zipfile.ZIP_DEFLATED)
for path, dir_names, file_names in os.walk(self.dir_path):
for filename in file_names:
testcase_zip.write(os.path.join(path, filename))
testcase_zip.close()
print("文件夹压缩成功")
def set_content(self):
path = self.outFullName
each_rar = path[path.rfind('/') + 1:]
if 'qq' in self.from_mail:
smtp_server = 'smtp.qq.com'
else:
smtp_server = 'smtp.163.com'
msg = MIMEMultipart()
msg['From'] = self.from_mail
msg['To'] = ','.j