scan_file.py扫描目录函数
"""文件扫描脚本"""
import os
import sys
def scan_file(path, indent=""):
# 初始化一个列表来存储扫描结果
scan_results = []
# 获取当前指定目录中的所有文件(文件夹+文件)
files = os.listdir(path)
# 遍历列表中的每个文件
for file in files:
# 拼接路径
file_path = os.path.join(path, file)
# 如果是文件,添加文件信息到结果列表
if os.path.isfile(file_path):
scan_results.append(f"{indent}文件:{file_path}")
# 如果是文件夹,先添加文件夹信息到结果列表,然后递归调用
if os.path.isdir(file_path):
scan_results.append(f"{indent}文件夹:{file_path}")
# 递归调用,并将结果添加到当前列表
indent += "---"
scan_results.extend(scan_file(file_path, indent))
# 返回结果列表
return scan_results
send_email.py发送邮件函数
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def send_email(outcome):
# 发件人邮箱账号
sender_email = ''
# 发件人邮箱密码(或授权码)
password = ''
# 收件人邮箱账号
receiver_email = ''
# 将列表转换为字符串,每个元素一行
text = '\n'.join(outcome)
# 创建邮件对象
msg = MIMEText(text, 'plain', 'utf-8')
# 设置发件人
msg['From'] = formataddr(('小小怪下士', sender_email))
# 设置收件人
msg['To'] = formataddr(('大大怪将军', receiver_email))
# 设置邮件主题
msg['Subject'] = '目录扫描结果'
# 创建SMTP对象
server = smtplib.SMTP('smtp.qq.com', 587) # 替换为您的SMTP服务器地址和端口
server.starttls() # 启动TLS加密
server.login(sender_email, password) # 登录发件人邮箱
try:
# 发送邮件
server.sendmail(sender_email, receiver_email, msg.as_string())
print('邮件发送成功')
except Exception as e:
print('邮件发送失败:', e)
finally:
server.quit() # 关闭连接
main.py程序入口
import scan_file
import send_email
if __name__ == '__main__':
path = "D:\\欧鹏\\py"
results = scan_file.scan_file(path)
send_email.send_email(results)