1. 批量重命名文件
以下是一个 Python批量重命名指定目录中的文件 的脚本。这个脚本会将目录中的所有文件按照一定的命名规则重命名,例如添加前缀或后缀,或者按照数字顺序命名。
python
import os
def batch_rename(directory, prefix='', suffix='', start_number=1):
"""
批量重命名指定目录中的文件。
:param directory: 要重命名的文件所在的目录
:param prefix: 要添加的前缀字符串
:param suffix: 要添加的后缀字符串,通常用于指定文件格式,如 '.txt'
:param start_number: 重命名文件的起始数字
"""
# 获取指定目录下的所有文件列表
files = os.listdir(directory)
# 确保不会覆盖已存在的文件
existing_files = os.listdir(directory)
for index, file in enumerate(files, start=start_number):
# 构建新的文件名
file_name, file_extension = os.path.splitext(file)
new_file_name = f"{prefix}{index}{suffix}{file_extension}"
# 检查新文件名是否已存在
if new_file_name in existing_files:
print(f"文件 {new_file_name} 已存在,跳过重命名。")
continue
# 构建完整的旧文件路径和新文件路径
old_file = os.path.join(directory, file)
new_file = os.path.join(directory, new_file_name)
# 重命名文件
try:
os.rename(old_file, new_file)
print(f"文件 '{file}' 已重命名为 '{new_file_name}'")
except OSError as e:
print(f"重命名 '{file}' 时出错: {e}")
# 使用示例
# 假设我们要重命名当前目录下的所有文件,添加前缀 'new_',后缀 '.txt',从数字 1 开始
batch_rename('.', 'new_', '.txt', 1)
在使用这个脚本之前,需要使用管理员权限运行程序以确保有权限修改目标目录中的文件,并且备份重要文件以防万一。这个脚本会遍历指定目录中的所有文件,并为它们分配一个新的文件名。可以根据需要修改prefix
、suffix
和start_number
参数。
注意: 在运行这个脚本之前,需要将 '.'
替换为你想要重命名文件的实际目录路径。此外,如果你想要保留原来的文件扩展名,请不要在suffix
参数中包含点号(.
)。如果你想要为所有文件添加相同的扩展名,可以在suffix
参数中指定它。
2. 定时发送邮件
以下是一个使用 Python 的smtplib
和email
库来定时发送邮件的脚本。这个脚本会配置一个SMTP服务器,创建一个简单的电子邮件,并设置一个定时器来发送邮件。
python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import time
from datetime import datetime
# 邮件发送者信息
sender_email = "your_email@example.com" # 发送者邮箱
sender_password = "your_password" # 发送者邮箱密码或SMTP授权码
# 邮件接收者信息
receiver_email = "receiver_email@example.com" # 接收者邮箱
# 邮件内容
subject = "定时发送的邮件"
body = "这是一封定时发送的邮件。"
# SMTP服务器配置(以QQ邮箱为例)
smtp_server = "smtp.qq.com"
smtp_port = 465
# 定时发送时间,例如每天早上8点(根据你的时区调整)
target_time = datetime.strptime("08:00:00", "%H:%M:%S").time()
def send_email():
# 创建MIME邮件对象
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
# 添加邮件正文
message.attach(MIMEText(body, 'plain'))
# 连接到SMTP服务器并使用SSL加密
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
# 登录SMTP服务器
server.login(sender_email, sender_password)
# 发送邮件
server.sendmail(sender_email, receiver_email, message.as_string())
print("邮件已发送。")
# 关闭服务器连接
server.quit()
def run_at_specific_time():
while True:
# 获取当前时间
now = datetime.now()
current_time = now.time()
# 如果当前时间等于目标时间,则发送邮件
if current_time >= target_time and current_time < target_time + time.timedelta(minutes=1):
send_email()
# 为了避免在一分钟内重复发送,休眠60秒
time.sleep(60)
else:
# 每隔60秒检查一次时间
time.sleep(60)
# 运行定时任务
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 库。如果没有安装,可以使用以下命令安装:
bash
pip install pandas
以下是填充 CSV文件的脚本示例:
python
import pandas as pd
from random import randint, choice
from string import ascii_uppercase
# 定义要填充的数据量
num_entries = 10
# 创建一个空的DataFrame
df = pd.DataFrame(columns=['Name', 'Age'])
# 生成随机数据并填充DataFrame
for _ in range(num_entries):
# 随机生成姓名,例如:'PersonABC'
name = 'Person' + ''.join(choice(ascii_uppercase) for _ in range(3))
# 随机生成年龄,例如:18至65岁
age = randint(18, 65)
# 添加到DataFrame
df = df.append({'Name': name, 'Age': age}, ignore_index=True)
# 输出DataFrame内容
print(df)
# 将DataFrame保存到CSV文件
df.to_csv('filled_table.csv', index=False)
这个脚本做了以下几件事情:
- 导入所需的库。
- 定义要生成多少条数据。
- 创建一个空的 DataFrame,其中包含我们想要填充的列。
- 在一个循环中,生成随机的姓名和年龄,并将它们添加到 DataFrame 中。
- 打印 DataFrame 的内容。
- 将 DataFrame 保存到 CSV文件。
运行这个脚本后,你将在当前目录下得到一个名为filled_table.csv
的文件,其中包含随机生成的姓名和年龄数据。