Python-模块复用&发邮件&写日志
1.模块复用
import a # 实质是将a模块的代码从头到尾执行一遍
import b # 导入同包模块(一个python就是一个模块),报红不影响执行
b.hh() # 表示使用b模块下的hh()函数
from b import hh # 导入b模块,与上一种方法区别在于,调用的时候可以直接使用hh()
if __name__ == '__main__': # 写在此函数下的文件,在本模块被别的模块导入复用时,不会执行此函数下的代码
查找模块的顺序:
1、导入模块的时候首先从当前目录下找
2、当前目录下没有,从python环境(sys.path)中找
注:只有这两个顺序,无其他
import sys
print(sys.path) # 此句打印出的路径下的文件均可以被导入(均是python环境的路径)且不报红
sys.path.append(r'E:\PycharmProjects\SZZ\day') # 将其他包下的文件的路径加入python环境中,加入到最后,即可导入其他包的模块进行复用
sys.path.insert(0,r'E:\PycharmProjects\SZZ\day\a.py') # 功能同上,0表示将路径加入到Python路径最前面,性能更好
2.发邮件
# 使用时,邮箱需要设置开启客户端授权码
# 抄送和附件不是必传的参数
import yagmail # 存在bug,中文附件会显示乱码--无bug安装包已上传网盘
user = 'XXXXXXX@XX.com' # 邮箱用户名
passwd = 'XXXXXX' # 邮箱授权码
smtp_host = 'XXXXX' # 邮箱服务器地址
mail = yagmail.SMTP(user=user,password=passwd,host=smtp_host) # 连接上邮箱
mail.send(to='XXX@XXX.com',
cc='XXX@XXX.com',
subject='发送邮件',
contents='邮件发送练习',
attachments=r'C:\Users\Administrator\Desktop\表格.docx') # to表示发给谁,cc表示抄送给谁,contents表示邮件主题,attachments表示附件路径
# 若是发给多个人,则使用list
mail.send(to=['hxn0823@126.com','1169153362@qq.com'],
cc=['1169153362@qq.com','hxn0823@126.com'],
subject='发送邮件', # 邮件主题
contents='邮件发送练习', # 邮件正文
attachments='test.log') # 邮件附件
3.写日志
import nnlog # 导入写日志模块
log = nnlog.Logger('test.log', level='error', backCount=3, when='S') # test.log表示将日志生成一个文件
# level表示打印哪个级别的日志,backCount表示保留最近3天的日志,when表示多久产生一个(D,H,M,S分别表示天,时,分,秒),默认每天产生一个日志
# 级别从低到高:
log.debug('debug...') # 一些变量值信息,看变量值这些(最低级别),默认为debug
log.info('info...') # 一些提示信息
log.warning('warning...') # 警告信息
log.error('error...') # 出错信息
log.surprise() # 惊喜函数(搞笑专用)