python复制数据集,从而生成大文件数据集,用于测试

需求驱动

在这里插入图片描述
如图,我有2个数据集,但文件大小总共45M,我要测试如下新增:
在这里插入图片描述
产品经理要求能够上传1T的文件,所以我要创建1T的文件上传。

代码设计

1、思路
(1)先遍历文件名称,生成一个列表
(2)复制文件,文件夹末尾加上00000001,如果列表存在该文件,将跳过复制
(3)代码可以运行多次,每次在原有基础上递增

2、设计

import os
import shutil


def getFileInFolder(filepath):
    pathDir =  os.listdir(filepath)  # 获取filepath文件夹下的所有的文件名
    return pathDir


filepath = r"E:\training训练数据\ant_bees_data"  #  源文件所在文件夹路径

for i in range(13):

    oldants = os.path.join(filepath ,"ants") # 源文件路径
    oldbees =  os.path.join(filepath ,"bees")
    antsName = "ants{}".format(str(i+1).zfill(8)) # 新文件名称:文件名添加后缀,如00000001
    beesName = "bees{}".format(str(i+1).zfill(8))
    if antsName not in getFileInFolder(filepath):
        newants = os.path.join(filepath, antsName)  # 新文件路径
        shutil.copytree(oldants, newants)  # 拷贝文件
    if beesName not in getFileInFolder(filepath):
        newbees = os.path.join(filepath, beesName)  # 新文件路径
        shutil.copytree(oldants, newbees)  # 拷贝文件

3、效果展示
在这里插入图片描述
4、代码优化
在这里插入图片描述
如上是优化后的代码,应该节省了一些时间,不过还可以进一步优化,聪明的你,是否挑战一下呢?(复制代码,修改路径,就能运行哦!)

<think>好的,我现在需要帮助用户了解如何使用Python通过网易邮箱的SMTP发送邮件。首先,用户提到了想使用API或SMTP,但根据常见的做法,网易邮箱通常使用的是SMTP协议而不是特定的API,所以应该重点介绍SMTP的方法。 接下来,我需要回忆Python发送邮件常用的库,比如smtplib和email模块。smtplib负责与SMTP服务器通信,而email模块用于构造邮件内容。用户可能需要发送不同类型的内容,比如纯文本、HTML、附件等,所以应该涵盖这些方面。 然后,我需要确保步骤清晰。首先配置SMTP服务器信息,比如服务器地址和端口。网易邮箱常用的SMTP服务器是smtp.163.com,端口一般是465(SSL)或994(TLS)。然后,用户需要开启SMTP服务并获取授权码,这一步很重要,因为直接使用邮箱密码可能不行,必须使用授权码。 接下来是构造邮件内容。可能需要使用MIMEText来创建纯文本或HTML邮件,MIMEMultipart来处理附件,以及添加头部信息如发件人、收件人、主题等。需要提醒用户注意邮件格式的正确性,比如From和To字段的格式。 然后是发送邮件的步骤,包括登录服务器发送邮件。示例代码需要展示如何使用smtplib.SMTP_SSL建立安全连接,使用login方法登录,sendmail发送邮件,最后关闭连接。同时,要处理可能的异常,比如网络问题或认证失败,但用户示例中可能不需要复杂的异常处理,但最好提及。 用户提供的引用中有提到使用多线程提高效率,但用户的问题可能暂时不需要这个,不过可以作为一个优化点放在相关问题里。此外,引用中还提到自动回复邮件的示例,但用户的问题是关于发送邮件,所以可能不需要深入自动回复,但可以作为相关应用场景。 最后,生成相关问题需要考虑用户可能进一步的需求,比如发送附件、群发邮件、安全注意事项、错误处理以及HTML邮件等。这些问题可以帮助用户扩展他们的知识,并解决实际应用中可能遇到的问题。 需要确保所有的代码示例正确,特别是SMTP服务器的地址和端口,以及使用授权码而不是密码。另外,中文回答要准确,避免技术术语错误。同时,检查LaTeX格式是否符合要求,但在这个问题中可能用不到数学公式,所以可能不需要使用$...$或$$...$$格式,但如果有提及性能分析或其他需要公式的地方,需要遵循格式要求。不过当前问题主要涉及代码和步骤,可能不需要数学表达式。</think>### 使用Python通过SMTP发送网易邮件的步骤及示例 #### 1. **配置SMTP服务器信息** 网易邮箱的SMTP服务器地址为 `smtp.163.com`,使用SSL加密时端口为 `465`[^1]。需要先登录网易邮箱网页版,在设置中开启SMTP服务并获取**授权码**(非邮箱密码)。 --- #### 2. **构造邮件内容** 使用Python的 `email` 模块构建邮件: - **纯文本邮件**:使用 `MIMEText` 类 - **带附件的邮件**:使用 `MIMEMultipart` 类 - HTML格式邮件:设置 `MIMEText` 的 `subtype` 为 `html` --- #### 3. **发送邮件示例代码** ```python import smtplib from email.mime.text import MIMEText from email.utils import formataddr # 配置信息 smtp_server = "smtp.163.com" smtp_port = 465 sender_email = "your_email@163.com" sender_name = "发件人名称" password = "你的授权码" # 注意是授权码,非邮箱密码 receiver_email = "receiver@example.com" # 构建纯文本邮件 msg = MIMEText("这是一封来自Python的测试邮件", "plain", "utf-8") msg["From"] = formataddr((sender_name, sender_email)) msg["To"] = receiver_email msg["Subject"] = "Python SMTP测试邮件" # 发送邮件 try: with smtplib.SMTP_SSL(smtp_server, smtp_port) as server: server.login(sender_email, password) server.sendmail(sender_email, [receiver_email], msg.as_string()) print("邮件发送成功") except Exception as e: print(f"发送失败: {e}") ``` --- #### 4. **发送带附件的邮件** ```python from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication msg = MIMEMultipart() msg["From"] = formataddr((sender_name, sender_email)) msg["To"] = receiver_email msg["Subject"] = "带附件的测试邮件" # 添加正文 msg.attach(MIMEText("附件是示例文件,请查收", "plain")) # 添加附件 with open("example.pdf", "rb") as f: attachment = MIMEApplication(f.read(), Name="example.pdf") attachment["Content-Disposition"] = 'attachment; filename="example.pdf"' msg.attach(attachment) # 发送代码同上(使用SMTP_SSL) ``` --- ### 关键注意事项 1. **授权码代替密码**:必须使用网易邮箱生成的授权码,而非邮箱登录密码[^1] 2. **加密协议**:推荐使用SSL加密(端口465),避免明文传输风险 3. **发件人格式**:`msg["From"]` 需包含发件人名称和邮箱,否则可能被识别为垃圾邮件 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值