大家好,我是辣条
今天给大家带来几个实用的python脚本工具,原因不难猜这段时间我亲爱的女朋友呢给我整出点小花样,差点让我电脑GG了。我打开系统盘一看真的是通红通红的啊 细细一看一堆的垃圾软件,关键是她安装的时候压根不看附带一堆的垃圾软件,这时候我只能掏出我珍藏多年的一些脚本用以避免之后再发生类似的惨案了 |
- 前言
- 系统提示工具
- 文件夹清理工具
- PDF文件转音频
- 批量压缩文件
- 邮件发送
这个工具用到了win10toast库来触发系统的通知,可以用于提示重要事情。
#定时通知脚本
from win10toast import ToastNotifier
import time
#构建通知对象实例
toaster = ToastNotifier()
title = input("请输入事件标题:")
content = input("请输入事件提要")
time_min = float(input("请输入提醒时间(分钟):"))
#time_min = time_min * 60
print("设置完成!")
time.sleep(1)
print("开始运行..")
time.sleep(time_min)
toaster.show_toast(f"{title}", f"{content}", duration=10, threaded=True)
while toaster.notification_active(): time.sleep(0.005)
文件夹清理工具
import os
import threading
import time
def get_file_list(file_path):
#文件按最后修改时间排序
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
return dir_list
def get_size(file_path):
"""[summary]
Args:
file_path ([type]): [目录]
Returns:
[type]: 返回目录大小,MB
"""
totalsize=0
for filename in os.listdir(file_path):
totalsize=totalsize+os.path.getsize(os.path.join(file_path, filename))
#print(totalsize / 1024 / 1024)
return totalsize / 1024 / 1024
def detect_file_size(file_path, size_Max, size_Del):
"""[summary]
Args:
file_path ([type]): [文件目录]
size_Max ([type]): [文件夹最大大小]
size_Del ([type]): [超过size_Max时要删除的大小]
"""
print(get_size(file_path))
if get_size(file_path) > size_Max:
fileList = get_file_list(file_path)
for i in range(len(fileList)):
if get_size(file_path) > (size_Max - size_Del):
print ("del :%d %s" % (i + 1, fileList[i]))
#os.remove(file_path + fileList[i])
def detectFileSize():
#检测线程,每个5秒检测一次
while True:
print('======detect============')
detect_file_size("/Users/aaron/Downloads/", 100, 30)
time.sleep(5)
if __name__ == "__main__":
#创建检测线程
detect_thread = threading.Thread(target = detectFileSize)
detect_thread.start()
PDF文件转音频
import pyttsx3
import pyPDF2
book = open('路径/book.pdf',rb)
pdfreader = pyPDF2.PdfFileReader(book)
pages = pdfreader.numPages
print(pages)
voice = pyttsx3.init()
page = pdfreader.getpage(3)
text = page.extractText()
speaker.say(text)
speaker.runAndWait()
批量压缩文件
import zipfile # zipfile库 压缩文件
import os
import time
def batch_zip(start_dir):
start_dir = start_dir #文件路径
file_news = start_dir + '.zip' # 压缩后文件夹的名字
z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)
for dir_path, dir_names, file_names in os.walk(start_dir):
#避免从根目录复制
f_path = dir_path.replace(start_dir, '')
#压缩所有文件
f_path = f_path and f_path + os.sep
for filename in file_names:
z.write(os.path.join(dir_path, filename), f_path + filename)
z.close()
return file_news
batch_zip('./data/ziptest')
邮件发送
# 1、导入模块
import yagmail
# 2、设置smtp服务信息
yag = yagmail.SMTP(user="改成自己的邮箱账号@126.com", password="改成自己的邮箱密码", host='smtp.126.com')
# 3、设置邮件主题与邮件内容
subject = 'Python邮件测试'
content = ['Python邮件测试 -- 邮件来自黑马程序员Python+大数据']
# 4、发送邮件
yag.send('gocndws@126.com', subject, content)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)