Python 的九个自动化实战脚本示例

本文们将通过一系列简单到高级的脚本示例,让你的日常工作生活更加高效。
首页 新闻资讯 行业资讯 Python 的九个自动化实战脚本示例

在这个快节奏的时代,Python以其简洁的语法和强大的库支持,成为了自动化日常任务的首选工具。想象一下,无需手动重复点击,几行代码就能完成文件管理、数据整理、网络抓取等任务,是不是很吸引人?接下来,我们将通过一系列简单到高级的脚本示例,让你的日常工作生活更加高效。

b32fcc972e86ccea9f3954795b0145d158bcf2.png

1. 自动备份文件

需求:每天自动备份指定文件夹内的文件。

importshutilimportdatetime

# 源文件夹路径
src_folder='C:/Users/你的用户名/Documents'# 备份文件夹路径,格式为年月日
backup_folder=f'C:/Backups/{datetime.date.today()}'# 创建备份目录
shutil.rmtree(backup_folder,ignore_errors=True)# 清除已存在的备份
os.makedirs(backup_folder,exist_ok=True)# 复制文件
shutil.copytree(src_folder,backup_folder)print("备份完成!")

解释:利用shutil库进行文件和目录操作,datetime用于生成当前日期作为备份目录名。

2. 邮件发送提醒

需求:定时发送邮件提醒自己或他人。

importsmtplib
from email.mime.textimportMIMEText
from email.mime.multipartimportMIMEMultipart

# 设置邮件信息
msg=MIMEMultipart()msg['From']='your_email@example.com'msg['To']='receiver@example.com'msg['Subject']='今日任务提醒'body='别忘了今天的会议哦!'msg.attach(MIMEText(body,'plain'))# 发送邮件
server=smtplib.SMTP('smtp.example.com',587)server.starttls()# 启用安全传输
server.login('your_email@example.com','your_password')text=msg.as_string()server.sendmail(msg['From'],msg['To'],text)server.quit()print("邮件发送成功!")

注意:使用前需替换邮箱地址和密码,并确保SMTP服务器设置正确。

3. 网页标题抓取

需求:批量获取网站列表的标题。

importrequests
from bs4importBeautifulSoup

# 网站列表
websites=['https://www.example1.com','https://www.example2.com']forurlinwebsites:response=requests.get(url)soup=BeautifulSoup(response.text,'html.parser')title=soup.find('title').textprint(f"{url} 的标题是: {title}")

技巧:使用requests获取网页内容,BeautifulSoup解析HTML。

这些基础脚本只是冰山一角,接下来,我们将探索更高级的应用,如数据自动化处理、社交媒体管理自动化、甚至简单的GUI应用,让你的自动化技能更上一层楼。保持学习,自动化之旅才刚刚开始。

4. Excel数据处理

需求:合并多个Excel文件。

importpandasaspd

# 文件所在目录
folder_path='C:/ExcelFiles'excel_files=[fforfinos.listdir(folder_path)iff.endswith('.xlsx')]# 合并Excel文件
frames=[pd.read_excel(os.path.join(folder_path,filename))forfilenameinexcel_files]combined=pd.concat(frames,ignore_index=True)combined.to_excel('combined.xlsx',index=False)print("Excel文件合并完成。")

重点:使用Pandas库简化数据处理,pd.concat用于合并DataFrame。

5. 自动下载图片

需求:从特定网站下载所有图片。

importosimportrequests
from bs4importBeautifulSoup

url='http://example.com/images-page'response=requests.get(url)soup=BeautifulSoup(response.text,'html.parser')img_tags=soup.find_all('img')forimginimg_tags:img_url=img.get('src')img_name=os.path.basename(img_url)withopen(img_name,'wb')ashandler:handler.write(requests.get(img_url).content)print(f"下载了图片: {img_name}")

提示:确保合法下载,尊重版权。

6. 网络状态监测

需求:监控网站是否可访问。

importtimeimportrequests

url='https://www.example.com'whileTrue:try:response=requests.get(url,timeout=5)ifresponse.status_code==200:print("网站在线。")else:print("网站无法访问。")except requests.ConnectionError:print("连接错误。")time.sleep(60)# 每分钟检查一次

实践:利用循环和异常处理持续监控。

7. 任务调度:定时执行脚本

需求:每天早上8点自动发送天气预报邮件。 解决方案:结合Python的schedule库和之前提到的天气预报与邮件发送脚本。

importscheduleimporttime
from send_weather_emailimportsend_weather_email  # 假设这是发送天气预报邮件的函数

defjob():send_weather_email()schedule.every().day.at("08:00").do(job)whileTrue:schedule.run_pending()time.sleep(1)

技巧:使用schedule库轻松安排任务,确保定时准确执行。

8. 自动化文件重命名

需求:批量重命名文件夹中的图片,添加日期戳。

importosimportdatetime

folder_path='C:/Pictures'datestamp=datetime.datetime.now().strftime('%Y%m%d')forfilenameinos.listdir(folder_path):iffilename.endswith('.jpg'):new_filename=f'{datestamp}_{filename}'src=os.path.join(folder_path,filename)dst=os.path.join(folder_path,new_filename)os.rename(src,dst)print(f'Renamed: {filename} to {new_filename}')

实用提示:利用os模块处理文件系统操作,增加文件管理的灵活性。

9. 简易的个人记账应用

需求:记录收支,保存到CSV文件。

importcsv

defrecord_transaction(description,amount,type='income'):withopen('transactions.csv',mode='a',newline='')asfile:writer=csv.writer(file)writer.writerow([description,amount,type])print("交易记录成功。")record_transaction("午餐",-20,"expense")record_transaction("工资",5000,"income")

扩展:可以进一步开发成图形界面或数据库存储,提升实用性。

结语

Python的自动化能力远不止于此。从简单的脚本到复杂的自动化流程,Python都是你值得信赖的伙伴。

22    2024-08-16 21:51:42    Python 自动化