【python】python批量处理自定义函数(文件压缩、邮箱发送、音频提醒)

python常用函数

  编写这个blog是为了方便日常使用时 调用,都是一些常用到的函数。

压缩

用途:

        将文件+文件夹一同压缩在指定路径的文件夹下

思路:

构建ZipFile对象,定义为只写文件,采用 zipfile.ZIP_DEFLATED 压缩
使用os.walk()函数遍历源文件夹文件+文件夹
使用ZipFile对象下的write方法,将文件及文件夹写入到压缩包中

文件:将文件放入压缩包中
文件夹:ZipFile对象下的write方法中第二次参数设置为相对路径即可,假若还有子文件夹,则会根据相对路径生成相应的文件夹,改代码的时候,切记不能使用绝对路径,使用绝对路径的话,压缩包就会从绝对路径下开始建文件夹。

关闭ZipFile对象,结束压缩过程

代码:
import zipfile, os
def zipYaSuo(zipFileMap, zipFileName):
    #压缩包名:zipFileName,状态:只写,压缩方式:zipfile.ZIP_DEFLATED
    zf = zipfile.ZipFile(zipFileName, 'w', zipfile.ZIP_DEFLATED)
    #遍历将要压缩的文件夹
    for folderName, subFolders, fileNames in os.walk(zipFileMap):
        #将文件夹里的每个文件都写到zf对象里面
        for fn in fileNames:
            sourceFileMap = os.path.join(folderName, fn)    #sourceFileMap为源文件的路径
            relpathMap = os.path.relpath(folderName, zipFileMap)
            targetFileMap = relpathMap + os.sep + fn        #targetFileMap为压缩包内文件的路径
            zf.write(sourceFileMap , targetFileMap)     #第二参数表示文件存放在压缩包的相对路径
    print (f'{zipFileName} 压缩成功')
    zf.close()
    
zipFileMap = fr'I:\wuwuwu\hello'# 要压缩的文件夹路径
zipFileName= zipFileMap +'.zip'# 压缩后文件夹的名字
zipYaSuo(zipFileMap, zipFileName)
效果演示:

在这里插入图片描述

邮箱发送附件

用途:

        将邮件附件发送到指定邮箱

思路:

先去QQ邮箱那获取 IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?)
得到使用IMAP/SMTP服务的 key
服务搭建初始化
导入邮件内容
发送邮件

代码:
import smtplib, os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

#发送Emile
def sendEmail(fromAddr, toAddr, zipFile):
    '''基础设置'''
    qqKey = 'abcdefghijk'  		#QQ邮箱SMTP的密钥
    smtpServer = 'smtp.qq.com'  #SMTP的端口服务器
    smtpPort = 465              #SMTP的端口号

    '''文本框设置'''
    textApart = MIMEText(f'这是您本次的资料', 'plain', 'utf-8')
    '''附件设置'''
    # 得到附件名称
    zipFileName = os.path.split(zipFile)[1]
    zipApart = MIMEApplication(open(zipFile, 'rb').read())
    #声明附件
    zipApart.add_header('Content-Disposition', 'attachment', filename=zipFileName)

    #连接上文本框的内容和附件的内容
    message = MIMEMultipart()
    message.attach(textApart)
    message.attach(zipApart)
    #邮件格式设置
    message['Subject'] = 'Python Smtp 邮件'     #标题
    message['From'] = 'Python邮件系统'      #发送方昵称

    try:
        #连接服务器
        stmp = smtplib.SMTP_SSL(smtpServer, smtpPort)
        #登陆QQ的STMP服务
        stmp.login(fromAddr, qqKey)
        #发送邮件fromAddr为发送方, toAddr为接受方, message.as_string()为邮件内容
        stmp.sendmail(fromAddr, toAddr, message.as_string())
    except Exception:
        print('邮件发送失败' + str(Exception))
    print('邮件发送成功')


fromAddr = 'xxxxxxxxxx@qq.com'   #发送方
toAddr = 'yyyyyyyyyyyy@qq.com'     #接受方
zipFile = r'F:\xxx\test.zip'  #附件路径
sendEmail(fromAddr=fromAddr, toAddr=toAddr, zipFile=zipFile)
效果演示:

在这里插入图片描述

参考

音频提示音

用途:

        完成自动化脚本后,播放提示音

代码:
#  本代码是转载百度的
#  https://jingyan.baidu.com/article/e2284b2b9222dce2e6118db9.html
#  因为听起来有趣就转了
import winsound,math
for i in range(100):
    winsound.Beep(int(600*math.sin(i/6.28)+700),100)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值