当前位置: 首页 > news >正文

​十个常见的 Python 脚本 (详细介绍 + 代码举例)

1. 批量重命名文件

介绍:  该脚本用于批量重命名指定目录下的文件,例如将所有 ".txt" 文件重命名为 ".md" 文件。

import osdef batch_rename(directory, old_ext, new_ext):"""批量重命名文件扩展名。Args:directory: 要处理的目录路径。old_ext: 要替换的旧扩展名。new_ext: 要替换的新扩展名。"""for filename in os.listdir(directory):if filename.endswith(old_ext):base_name = os.path.splitext(filename)[0]new_filename = base_name + new_extold_path = os.path.join(directory, filename)new_path = os.path.join(directory, new_filename)os.rename(old_path, new_path)# 示例用法:将当前目录下所有 ".txt" 文件重命名为 ".md" 文件
batch_rename(".", ".txt", ".md")

2. 下载网页图片

介绍:  该脚本用于下载指定网页上的所有图片,并保存到本地目录。

import requests
from bs4 import BeautifulSoup
import osdef download_images(url, save_dir):"""下载网页上的所有图片。Args:url: 要下载图片的网页地址。save_dir: 保存图片的目录路径。"""response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# 创建保存目录if not os.path.exists(save_dir):os.makedirs(save_dir)# 找到所有图片标签img_tags = soup.find_all('img')# 下载每张图片for i, img_tag in enumerate(img_tags):img_url = img_tag.get('src')if img_url:img_data = requests.get(img_url).contentimg_name = f"image_{i+1}.jpg"img_path = os.path.join(save_dir, img_name)with open(img_path, 'wb') as f:f.write(img_data)print(f"Downloaded: {img_name}")# 示例用法:下载百度首页的图片
download_images("https://www.baidu.com", "baidu_images")

3. 发送邮件通知

介绍: 该脚本用于发送邮件通知,例如在脚本执行完毕后发送邮件通知管理员。

import smtplib
from email.mime.text import MIMETextdef send_email(sender_email, sender_password, receiver_email, subject, message):"""发送邮件通知。Args:sender_email: 发送方邮箱地址。sender_password: 发送方邮箱密码。receiver_email: 接收方邮箱地址。subject: 邮件主题。message: 邮件内容。"""msg = MIMEText(message, 'plain', 'utf-8')msg['Subject'] = subjectmsg['From'] = sender_emailmsg['To'] = receiver_emailtry:with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:smtp.login(sender_email, sender_password)smtp.send_message(msg)print("邮件发送成功!")except Exception as e:print(f"邮件发送失败:{e}")# 示例用法:发送邮件通知
send_email("your_email@gmail.com", "your_password", "receiver@example.com", "脚本执行完毕", "脚本已成功执行!")

4. 读取 CSV 文件

介绍: 该脚本用于读取 CSV 文件,并可以根据需要对数据进行处理和分析。

import csvdef read_csv(file_path):"""读取 CSV 文件。Args:file_path: CSV 文件路径。"""with open(file_path, 'r', encoding='utf-8') as f:reader = csv.reader(f)# 跳过标题行next(reader)for row in reader:print(row)# 示例用法:读取名为 "data.csv" 的 CSV 文件
read_csv("data.csv")

5. 写入 CSV 文件

介绍:  该脚本用于将数据写入 CSV 文件,可以用于数据存储和导出。

import csvdef write_csv(file_path, data):"""将数据写入 CSV 文件。Args:file_path: CSV 文件路径。data: 要写入的数据,格式为列表的列表。"""with open(file_path, 'w', encoding='utf-8', newline='') as f:writer = csv.writer(f)writer.writerows(data)# 示例用法:将数据写入名为 "data.csv" 的 CSV 文件
data = [["Name", "Age", "City"],["Alice", 25, "New York"],["Bob", 30, "London"],
]
write_csv("data.csv", data)

6. 爬取网页数据

介绍:  该脚本用于爬取网页数据,例如新闻标题、商品价格等,并可以将数据保存到本地或数据库。

import requests
from bs4 import BeautifulSoupdef scrape_website(url):"""爬取网页数据。Args:url: 要爬取数据的网页地址。"""response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# 提取数据,例如新闻标题titles = [title.text.strip() for title in soup.find_all('h2', class_='news-title')]# 打印提取的数据for title in titles:print(title)# 示例用法:爬取新浪新闻首页的新闻标题
scrape_website("https://news.sina.com.cn/")

7. 自动化测试

介绍:  该脚本用于自动化测试软件或网站的功能,例如登录测试、表单提交测试等。

from selenium import webdriverdef test_login(url, username, password):"""测试网站登录功能。Args:url: 要测试的网站地址。username: 登录用户名。password: 登录密码。"""driver = webdriver.Chrome()driver.get(url)# 找到用户名和密码输入框,并输入用户名和密码username_input = driver.find_element_by_id("username")password_input = driver.find_element_by_id("password")username_input.send_keys(username)password_input.send_keys(password)# 找到登录按钮,并点击login_button = driver.find_element_by_id("login-button")login_button.click()# 检查是否登录成功if driver.current_url == "https://www.example.com/dashboard":print("登录成功!")else:print("登录失败!")driver.quit()# 示例用法:测试 example.com 网站的登录功能
test_login("https://www.example.com/login", "testuser", "testpassword")

8. 图像处理

介绍:  该脚本用于图像处理,例如裁剪、缩放、添加水印等。

from PIL import Imagedef resize_image(image_path, width, height):"""缩放图片大小。Args:image_path: 图片路径。width: 新的宽度。height: 新的高度。"""img = Image.open(image_path)img = img.resize((width, height))img.save("resized_" + image_path)# 示例用法:将图片 "image.jpg" 缩放为 200x200 像素
resize_image("image.jpg", 200, 200)

9. 数据可视化

介绍:  该脚本用于数据可视化,例如绘制图表、生成报表等,可以更直观地展示数据。

import matplotlib.pyplot as pltdef plot_chart(x, y):"""绘制折线图。Args:x: x 轴数据。y: y 轴数据。"""plt.plot(x, y)plt.xlabel("X 轴")plt.ylabel("Y 轴")plt.title("折线图")plt.show()# 示例用法:绘制 x=[1,2,3], y=[4,5,6] 的折线图
plot_chart([1, 2, 3], [4, 5, 6])

10. 创建简单的 Web 应用

介绍:  该脚本使用 Flask 框架创建一个简单的 Web 应用,例如显示 "Hello, world!" 的页面。

from flask import Flaskapp = Flask(__name__)@app.route("/")
def hello():return "Hello, world!"if __name__ == "__main__":app.run(debug=True)

注意:  以上代码示例仅供参考,实际应用中需要根据具体需求进行修改和完善。部署爬虫相关代码需要遵守 robots 协议, 并注意数据安全。

如果对你有帮助,记得点赞分享支持一下~

相关文章:

  • Python网络爬虫面试题3
  • uniapp0基础编写安卓原生插件和调用第三方jar包(Ch34的jar包)和如何解决android 如何Application初始化
  • 【golang】Golang手写元组 tuple | golang tuple
  • Oracle(42) 什么是动态SQL?
  • 24暑假算法刷题 | Day27 | 贪心算法 I | LeetCode 455. 分发饼干,376. 摆动序列,53. 最大子数组和
  • comfyui老照片修复工作流,直接复制到comfyui中即可使用
  • JavaScript基础——JavaScript变量名称命名规范
  • 【Golang 面试 - 进阶题】每日 3 题(六)
  • 【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
  • 基于YOLOv8的高压输电线路异物检测系统
  • 笔试练习day2
  • git操作流程笔记
  • 程序员找工作之数据结构面试题总结分析
  • Day17_1--AJAX学习之GET/POST传参
  • C++11深度剖析
  • co.js - 让异步代码同步化
  • dva中组件的懒加载
  • mac修复ab及siege安装
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PAT A1050
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 观察者模式实现非直接耦合
  • 聊聊redis的数据结构的应用
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 数组大概知多少
  • 网络应用优化——时延与带宽
  • 微信公众号开发小记——5.python微信红包
  • 一起参Ember.js讨论、问答社区。
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​你们这样子,耽误我的工作进度怎么办?
  • #git 撤消对文件的更改
  • $$$$GB2312-80区位编码表$$$$
  • (09)Hive——CTE 公共表达式
  • (4)STL算法之比较
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (论文阅读40-45)图像描述1
  • (十八)SpringBoot之发送QQ邮件
  • (自用)网络编程
  • **PHP二维数组遍历时同时赋值
  • .Net Core 中间件与过滤器
  • .net 后台导出excel ,word
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 中 GetProcess 相关方法的性能
  • .net6 webapi log4net完整配置使用流程
  • .so文件(linux系统)
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @Autowired 与@Resource的区别
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • @RequestBody与@ModelAttribute
  • [<事务专题>]
  • [000-01-030].Zookeeper学习大纲