公告资讯

热门消息 > Python脚本大师:自动化处理重复任务,提高工作效率

Python脚本大师:自动化处理重复任务,提高工作效率

2025-01-27

今天聊聊如何利用Python脚本简化日常重复工作

说实话,我最讨厌的就是每天都要重复做同样的事情,这不仅浪费时间,还让人感到厌倦。自从学会了用Python编写脚本后,感觉整个人都解放了!下面分享几个实用的小技巧,相信会让你的工作效率大大提高。

批量重命名文件

是否遇到过需要批量更改文件名的情况?比如下载了一大堆照片,想要按照日期重新命名。手动修改?那简直是噩梦。用Python脚本几秒钟就能搞定:

import os
from datetime import datetime

# 指定目录路径
directory = "C:/Users/YourName/Pictures"
for filename in os.listdir(directory):
    if filename.endswith(".jpg"):  # 只处理jpg文件
        file_path = os.path.join(directory, filename)
        # 获取文件修改时间
        mod_time = os.path.getmtime(file_path)
        # 转换为日期时间格式
        date = datetime.fromtimestamp(mod_time).strftime('%Y%m%d')
        # 新文件名
        new_name = f"{date}_{filename}"
        # 重命名
        os.rename(file_path, os.path.join(directory, new_name))
print("搞定!所有文件已重命名。")

这段代码会遍历指定目录下的所有jpg文件,然后根据文件的修改时间给它们加上日期前缀。比如“IMG001.jpg”就变成了“20230611_IMG001.jpg”。提醒一下,在运行这种批量操作的脚本前,最好先备份一下原始文件,以防万一出错还能恢复。

自动化Excel数据处理

处理Excel中的数据是最烦人的任务之一,尤其是当需要处理多个表格时。使用Python的openpyxl库可以轻松搞定:

from openpyxl import load_workbook, Workbook

# 打开源Excel文件
wb = load_workbook("source.xlsx")
sheet = wb.active

# 创建新的Excel文件
new_wb = Workbook()
new_sheet = new_wb.active

# 处理数据
for row in sheet.iter_rows(min_row=2, values_only=True):
    name, sales = row[0], row[1]
    if sales > 1000:  # 假设我们只关心销售额超过1000的
        new_sheet.append([name, sales])

# 保存新文件
new_wb.save("processed_data.xlsx")
print("Excel处理完成,结果已保存到新文件中。")

这个脚本会读取一个Excel文件,筛选出销售额超过1000的记录,然后把结果保存到一个新的Excel文件中。再也不用手动筛选数据了,简直太爽了!

定时任务自动化

有些工作需要定期执行,比如每天下午5点发送一份工作报告。与其靠自己记,不如写个脚本让电脑帮你盯着:

import schedule
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_report():
    # 这里是发送邮件的代码
    sender = "your_email@example.com"
    receiver = "boss@example.com"
    msg = MIMEMultipart()
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = "每日工作报告"
    body = "这是今天的工作报告内容。\n1. 完成了A项目\n2. 开始着手B项目\n3. 解决了C问题"
    msg.attach(MIMEText(body, 'plain'))

    try:
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(sender, "your_password")
        text = msg.as_string()
        server.sendmail(sender, receiver, text)
        server.quit()
        print("邮件发送成功!")
    except Exception as e:
        print(f"邮件发送失败:{e}")

# 设置每天下午5点执行
schedule.every().day.at("17:00").do(send_report)

while True:
    schedule.run_pending()
    time.sleep(60)  # 每分钟检查一次是否有待执行的任务

这个脚本设置了一个定时任务,每天下午5点自动发送一封邮件。你只需要把它放在后台运行,就再也不用担心忘记发报告了。

温馨提示:使用Gmail的SMTP服务器时,可能需要在Google账户设置中启用“不太安全的应用访问”。或者更好的方法是使用应用专用密码。

网络数据抓取

有时候我们需要从网站上收集一些数据,比如监控竞争对手的价格变化。手动复制粘贴?太落后了!来看看怎么用Python的requestsbeautifulsoup库来自动抓取网页数据:

import requests
from bs4 import BeautifulSoup
import csv

url = "https://example.com/products"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

products = []
for item in soup.find_all('div', class_='product'):
    name = item.find('h2').text.strip()
    price = item.find('span', class_='price').text.strip()
    products.append([name, price])

# 保存到CSV文件
with open('products.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['Product Name', 'Price'])
    writer.writerows(products)

print(f"成功抓取了{len(products)}个产品信息,并保存到了products.csv文件中。")

这个脚本会访问指定的网页,解析HTML内容,提取产品名称和价格信息,然后把结果保存到一个CSV文件中。你可以根据具体网站的HTML结构来调整解析逻辑。

好了,今天就聊到这儿吧。这些小技巧都是我平时工作中经常用到的,希望对你也有帮助。记住,编程的关键就是解决实际问题。多练习,多思考如何用代码来简化你的日常工作,你会发现编程其实挺有趣的。哦对了,代码里难免会有些bug,别灰心,调试也是提高编程技巧的好方法。加油!