【Python】自动化脚本【批量处理处罚】【自动化发邮件】【自动填表】

[复制链接]
发表于 2026-2-13 23:55:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1. 批量重定名文件

以下是一个 Python批量重定名指定目次中的文件 的脚本。这个脚本会将目次中的全部文件按照肯定的定名规则重定名,比方添加前缀或后缀,大概按照数字次序定名。
  1. import os
  2. def batch_rename(directory, prefix='', suffix='', start_number=1):
  3.     """
  4.     批量重命名指定目录中的文件。
  5.     :param directory: 要重命名的文件所在的目录
  6.     :param prefix: 要添加的前缀字符串
  7.     :param suffix: 要添加的后缀字符串,通常用于指定文件格式,如 '.txt'
  8.     :param start_number: 重命名文件的起始数字
  9.     """
  10.     # 获取指定目录下的所有文件列表
  11.     files = os.listdir(directory)
  12.    
  13.     # 确保不会覆盖已存在的文件
  14.     existing_files = os.listdir(directory)
  15.    
  16.     for index, file in enumerate(files, start=start_number):
  17.         # 构建新的文件名
  18.         file_name, file_extension = os.path.splitext(file)
  19.         new_file_name = f"{prefix}{index}{suffix}{file_extension}"
  20.         
  21.         # 检查新文件名是否已存在
  22.         if new_file_name in existing_files:
  23.             print(f"文件 {new_file_name} 已存在,跳过重命名。")
  24.             continue
  25.         # 构建完整的旧文件路径和新文件路径
  26.         old_file = os.path.join(directory, file)
  27.         new_file = os.path.join(directory, new_file_name)
  28.         
  29.         # 重命名文件
  30.         try:
  31.             os.rename(old_file, new_file)
  32.             print(f"文件 '{file}' 已重命名为 '{new_file_name}'")
  33.         except OSError as e:
  34.             print(f"重命名 '{file}' 时出错: {e}")
  35.             
  36. # 使用示例
  37. # 假设我们要重命名当前目录下的所有文件,添加前缀 'new_',后缀 '.txt',从数字 1 开始
  38. batch_rename('.', 'new_', '.txt', 1)
复制代码
在使用这个脚本之前,须要使用管理员权限运行步伐以确保有权限修改目的目次中的文件,而且备份告急文件以防万一。这个脚本会遍历指定目次中的全部文件,并为它们分配一个新的文件名。可以根据须要修改prefix、suffix和start_number参数。
留意: 在运行这个脚本之前,须要将 '.' 更换为你想要重定名文件的现实目次路径。别的,假如你想要保存原来的文件扩展名,请不要在suffix参数中包罗点号(.)。假如你想要为全部文件添加雷同的扩展名,可以在suffix参数中指定它。
2. 定时发送邮件

以下是一个使用 Python 的smtplib和email库来定时发送邮件的脚本。这个脚本会设置一个SMTP服务器,创建一个简朴的电子邮件,并设置一个定时器来发送邮件。
  1. import smtplib
  2. from email.mime.text import MIMEText
  3. from email.mime.multipart import MIMEMultipart
  4. import time
  5. from datetime import datetime
  6. # 邮件发送者信息
  7. sender_email = "[email protected]"  # 发送者邮箱
  8. sender_password = "your_password"  # 发送者邮箱密码或SMTP授权码
  9. # 邮件接收者信息
  10. receiver_email = "[email protected]"  # 接收者邮箱
  11. # 邮件内容
  12. subject = "定时发送的邮件"
  13. body = "这是一封定时发送的邮件。"
  14. # SMTP服务器配置(以QQ邮箱为例)
  15. smtp_server = "smtp.qq.com"
  16. smtp_port = 465
  17. # 定时发送时间,例如每天早上8点(根据你的时区调整)
  18. target_time = datetime.strptime("08:00:00", "%H:%M:%S").time()
  19. def send_email():
  20.     # 创建MIME邮件对象
  21.     message = MIMEMultipart()
  22.     message["From"] = sender_email
  23.     message["To"] = receiver_email
  24.     message["Subject"] = subject
  25.     # 添加邮件正文
  26.     message.attach(MIMEText(body, 'plain'))
  27.     # 连接到SMTP服务器并使用SSL加密
  28.     server = smtplib.SMTP_SSL(smtp_server, smtp_port)
  29.     # 登录SMTP服务器
  30.     server.login(sender_email, sender_password)
  31.     # 发送邮件
  32.     server.sendmail(sender_email, receiver_email, message.as_string())
  33.     print("邮件已发送。")
  34.     # 关闭服务器连接
  35.     server.quit()
  36.    
  37. def run_at_specific_time():
  38.     while True:
  39.         # 获取当前时间
  40.         now = datetime.now()
  41.         current_time = now.time()
  42.         # 如果当前时间等于目标时间,则发送邮件
  43.         if current_time >= target_time and current_time < target_time + time.timedelta(minutes=1):
  44.             send_email()
  45.             # 为了避免在一分钟内重复发送,休眠60秒
  46.             time.sleep(60)
  47.         else:
  48.             # 每隔60秒检查一次时间
  49.             time.sleep(60)
  50.             
  51. # 运行定时任务
  52. run_at_specific_time()
复制代码
在运行脚本之前,确保信息已经准确填写:

  • sender_email: 发送者邮箱地点
  • sender_password: 发送者邮箱暗码或SMTP授权码(某些邮箱服务商须要天生一个授权码用于第三方登录)
  • receiver_email: 吸收者邮箱地点
  • smtp_server 和 smtp_port: 你的邮箱服务商的SMTP服务器地点和端口
  • target_time: 渴望脚本实行发送邮件的时间
留意:

  • 在使用之前,确保已经安装了Python,而且安装了smtplib和email库(这些是Python尺度库,通常不须要单独安装)。
  • 脚本中的run_at_specific_time函数将无穷循环查抄当前时间,并在设定的时间发送邮件。它不会思量日期的厘革,因此假如你须要天天发送邮件,你须要思量日期的厘革,并相应地修改脚本。
  • 为了掩护你的邮箱暗码,发起不要将暗码直接硬编码在脚本中,可以使用情况变量或其他安全方式来存储敏感信息。
  • 假如你的SMTP服务器不支持SSL,请使用smtplib.SMTP()取代smtplib.SMTP_SSL(),并在毗连后使用server.starttls()来启用TLS加密。
3. 自动填表

以下是一个用 Pandas 库自动添补 CSV文件的脚本。假设我们有一个 CSV文件,它有两列:Name和Age,我们将自动添补一些数据。
起首,确保你已经安装了 Pandas 库。假如没有安装,可以使用以下下令安装:
  1. pip install pandas
复制代码
以下是添补 CSV文件的脚本示例:
  1. import pandas as pd
  2. from random import randint, choice
  3. from string import ascii_uppercase
  4. # 定义要填充的数据量
  5. num_entries = 10
  6. # 创建一个空的DataFrame
  7. df = pd.DataFrame(columns=['Name', 'Age'])
  8. # 生成随机数据并填充DataFrame
  9. for _ in range(num_entries):
  10.     # 随机生成姓名,例如:'PersonABC'
  11.     name = 'Person' + ''.join(choice(ascii_uppercase) for _ in range(3))
  12.     # 随机生成年龄,例如:18至65岁
  13.     age = randint(18, 65)
  14.     # 添加到DataFrame
  15.     df = df.append({'Name': name, 'Age': age}, ignore_index=True)
  16. # 输出DataFrame内容
  17. print(df)
  18. # 将DataFrame保存到CSV文件
  19. df.to_csv('filled_table.csv', index=False)
复制代码
这个脚本做了以下几件事变:

  • 导入所需的库。
  • 界说要天生多少条数据。
  • 创建一个空的 DataFrame,此中包罗我们想要添补的列。
  • 在一个循环中,天生随机的姓名和年龄,并将它们添加到 DataFrame 中。
  • 打印 DataFrame 的内容。
  • 将 DataFrame 生存到 CSV文件。
运行这个脚本后,你将在当前目次下得到一个名为filled_table.csv的文件,此中包罗随机天生的姓名和年龄数据。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表