Python_3

Python自动化:扫描文件夹并发送文件树形结构到邮箱

在日常工作和学习中,我们经常需要管理和查看大量的文件。有时候,为了更好地理解文件的组织结构,我们需要一个清晰的文件树形视图。此外,如果我们需要将这个结构分享给其他人,手动复制和粘贴就显得不够高效。本文将介绍如何使用Python自动化这一过程,通过扫描指定目录下的所有文件,并将文件树形结构发送到指定的邮箱。

任务

任务:编写python代码,扫描指定的目录下的所有文件,将这些扫描的文本内容邮件发送到指定邮箱(如:自己的qq/gmail/163邮箱)
此处我使用QQ邮箱向gmail邮箱发送
如果你选择使用QQ邮箱作为SMTP服务器,你需要确保你的QQ邮箱启用了SMTP服务,并且你有一个有效的授权码。
设置授权码参考:简书:31.1企业级开发进阶3.1:发送电子邮件

代码如下:

import os
import smtplib
from email.mime.text import MIMEText


def scan_file(path, depth=0):
    """扫描文件并打印树形结构"""
    indent = "    " * depth
    files = sorted(os.listdir(path))
    file_tree = ""
    for f in files:
        fullpath = os.path.join(path, f)
        if os.path.isdir(fullpath):
            file_tree += f"{indent}├── {f}/\n"
            file_tree += scan_file(fullpath, depth + 1)
            if depth == 0 and f < files[-1]:
                file_tree += f"{indent}│   \n"
        elif os.path.isfile(fullpath):
            file_tree += f"{indent}├── {f}\n"
            if depth == 0 and f < files[-1]:
                file_tree += f"{indent}│   \n"
    return file_tree


def send_email(sender_email, sender_password, recipient, subject, body):
    # SMTP服务器信息(以QQ邮箱为例)
    smtp_server = 'smtp.qq.com'
    smtp_port = 587

    # 创建SMTP会话
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(sender_email, sender_password)

    # 构建邮件内容
    message = MIMEText(body, 'plain', 'utf-8')
    message['Subject'] = subject
    message['From'] = sender_email
    message['To'] = recipient

    # 发送邮件
    server.sendmail(sender_email, recipient, message.as_string())

    # 关闭SMTP会话
    server.quit()


if __name__ == '__main__':
    path = "D:\\111\\Typora"
    # 扫描文件并收集结果
    file_tree = scan_file(path)

    # 发送邮件
    sender_email = '1642385935@qq.com'
    sender_password = '*************' # 此处密码填写授权码
    recipient = 'pbpvza1@gmail.com'
    subject = '文件树形结构'
    send_email(sender_email, sender_password, recipient, subject, file_tree)

运行脚本

保存上述脚本为.py文件,并在命令行或你的Python IDE中运行它。如果一切设置正确,脚本将会扫描指定的目录,生成文件树形结构,并将其作为邮件正文发送到指定的邮箱。
结果展示:

gmail接受成功

结语

自动化是提高效率的关键。通过这个简单的Python脚本,我们不仅能够快速获取文件的树形结构,还可以方便地与他人分享这一信息。这种方法在处理大型项目或需要频繁报告文件状态的场合尤其有用。
希望这篇文章能够帮助你更好地管理你的文件,并提高你的工作效率。如果你有任何问题或建议,请随时在评论区交流。


请注意,这篇文章是一个示例,你需要根据实际情况调整代码和文章内容。在分享代码时,请确保遵守相关的隐私和安全规范,不要泄露任何敏感信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值