今天聊聊如何利用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的requests
和beautifulsoup
库来自动抓取网页数据:
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,别灰心,调试也是提高编程技巧的好方法。加油!