​十个常见的 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 协议, 并注意数据安全。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391584.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心系列专题篇四

​​​​​​​ 目录 整数替换 解法一 解法二 俄罗斯套娃信封问题 堆箱子 可被三整除的最大和 距离相等的条形码 重构字符串 声明:接下来主要使用贪心法来解决问题!!! 整数替换 题目 思路 下面将使用两种方法来解决这…

【数据结构】算法的时间复杂度与空间复杂度

计算机考研408-数据结构笔记本之——第一章 绪论 1.2 算法和算法评价 1.2.2 算法效率的度量 算法效率的度量是通过时间复杂度和空间复杂度来描述的。 1.时间复杂度 时间复杂度T(n)是事前预估算法时间开销T(n)与问题规模 n 的关系(T 表示 “time”)&a…

眼在手外-机器人坐标系与相机坐标系标定方法

1 眼在手外坐标系概述 实现机械臂和相机的手眼标定,就是要通过双目相机坐标系、机械臂坐标系和机械臂 末端执行器三者的坐标系转换,求出手眼转换矩阵。设双目相机坐标系为 Oc,标定板坐标 系为 Ow,末端执行器坐标系为 Oe&#xff0…

【C++】二维数组定义方式

二维数组有四种定义方式 1、数据类型 数组名[行数 ][ 列数 ]; 2、数据类型 数组名[ 行数 ][ 列数 ]{{数据1,数据2},{数据3,数据4 }}; 3、数据类型 数组名[ 行数 ][ 列数 ]{数据1,数据2,数据3&#xff…

Java | Leetcode Java题解之第321题拼接最大数

题目&#xff1a; 题解&#xff1a; class Solution {public int[] maxNumber(int[] nums1, int[] nums2, int k) {int m nums1.length, n nums2.length;int[] maxSubsequence new int[k];int start Math.max(0, k - n), end Math.min(k, m);for (int i start; i < e…

04 表的操作

目录 创建查看修改删除 1. 创建 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储殷勤; 说明&#xff1a; field&#xff0c;表示列名 datatype&#xff0c;表示列的类型…

C++ 继承 派生类的拷贝构造

继承 派生类的拷贝构造构造顺序拷贝构造 引例1: 当子类,不自实现拷贝构造时,默认调用父类的拷贝构造引例2: 子类自实现拷贝构造,不做特殊处理时,只会调用父类的构造器.引例3: 显示的调用父类的拷贝构造器。案例: 内嵌函数的拷贝构造 引例1 :当内嵌子对象,子类不自实现拷贝构造时…

【java】单行注释(//)与多选注释(/* */)

文章目录 单行注释多行注释注意事项 在Java中&#xff0c;注释是用来给代码添加说明的&#xff0c;它不会被编译器执行。Java提供了两种主要的注释方式&#xff1a;单行注释和多行注释&#xff08;有时也称为块注释或块级注释&#xff09;。 单行注释 单行注释以两个正斜杠&…

数模评价决策类—熵权法

目录 文章目录 前言 一、熵权法是什么&#xff1f; 二、基本步骤 计算样本权重及熵权 总结 前言 前面我们学习了层次分析法和Topsis法&#xff0c;这两个方法都是偏主观的方法&#xff0c;这篇我们将运用较为客观的方法——熵权法&#xff0c;做出决策 一、熵权法是什么…

JavaWeb-HTML

一、HTML&CSS&JavaSript的作用: 1.HTML主要用于网页为主体结构的搭建&#xff1b; 2.CSS主要用于页面元素的美化 3.JavaScript主要用于页面元素的动态处理; 二、HTML HTML是Hyper Text Markup Language的缩写。意思是超文本标记语言。它的作用是搭建网页结构&…

2024死磕小红书,一定能赚到钱!

​2024死磕小红书&#xff0c;一定能赚到钱&#xff01;在文末领取小红书运营完全指南电子书 从2023年起&#xff0c;小红书这股热乎劲儿就像开了挂&#xff0c;突然间就成了人人想蹭的“显学”。大伙儿都想趁着平台红利期&#xff0c;分一杯羹。说来惭愧&#xff0c;我从2020年…

牛顿插值法代替泰勒公式

引入 例题 近似函数&#xff1a; 通过这个近似函数可以看出&#xff0c;若要证的函数超过二阶可导&#xff0c;那么就不适合用牛顿插值法代替泰勒公式 因为&#xff0c;后面的操作非常复杂&#xff0c;不划算了… 总结 我们可以通过牛顿插值法生成一个逼近曲线的直线&#xf…

使用Python库开发Markdown编辑器并将内容导出为图片

简介 在本文中&#xff0c;我们将探索如何使用Python的wxPython库开发一个Markdown编辑器应用程序。这个应用程序不仅能浏览和编辑Markdown文件&#xff0c;还可以将编辑的内容导出为PNG图片。 C:\pythoncode\new\markdowneditor.py 完整代码 import wx import markdown2 im…

【传知代码】实体关系抽取(论文复现)

当谈论信息提取领域的最前沿时&#xff0c;实体关系抽取无疑是其中一颗耀眼的明星。从大数据时代的信息海洋中提炼出有意义的关系&#xff0c;不仅是科技进步的体现&#xff0c;更是人类对知识管理和智能决策迫切需求的响应。本文将探索实体关系抽取的核心技术、应用场景及其在…

太阳光模拟器在光纤中的应用

概述 太阳光模拟器是一种重要的实验室设备&#xff0c;它能模拟太阳光的光谱、强度和角度分布&#xff0c;广泛应用于光纤通信、光电器件测试、太阳能研究等多个领域。通过模拟太阳光的光照条件&#xff0c;研究人员可以在实验室环境中对光电材料和器件进行性能测试和研究。 太…

二维码生成原理及解码原理

☝☝☝二维码配图 二维码 二维码&#xff08;Quick Response Code&#xff0c;简称QR码&#xff09;是一种广泛使用的二维条形码技术&#xff0c;由日本公司Denso Wave在1994年开发。二维码能有效地存储和传递信息&#xff0c;广泛应用于商品追溯、支付、广告等多个领域。二维…

c++入门基础(下篇)————引用、inline、nullptr

引用 引用的概念和定义 引⽤不是新定义⼀个变量&#xff0c;⽽是给已存在变量取了⼀个别名&#xff0c;编译器不会为引⽤变量开辟内存空间&#xff0c; 它和它引⽤的变量共⽤同⼀块内存空间。 类型& 引用别名 引用对象; 就像孙悟空也叫齐天大圣 猪八戒也叫天蓬元帅。…

Meinberg Lantime服务器监控指标解读

监控易是一款功能强大的IT基础设施监控软件&#xff0c;它能够实时监控各种IT设备的状态&#xff0c;提供全面的性能分析和告警通知服务。对于Meinberg Lantime服务器&#xff0c;监控易通过一系列监控指标&#xff0c;确保服务器的稳定运行和服务的可用性。 一、监控对象概述…

策略模式的一次应用

项目的需求是将一组图像按照相似度分类。 采用了模板匹配计算相似度的实现方式。 #include <opencv2/core.hpp> #include <openev2/core/utility.hpp> #include <opencv2/highqui.hpp> #include <openav2/imgproc.hpp> cv::Mat image matched; double …

Linux系统编程 --- 动静态库

一、回顾&#xff0c;制作一个库 libXXX.a --- 静态链接 libYYY.so --- 动态链接 设计一个库&#xff1a; 把我们提供的方法&#xff0c;给别人用&#xff1a; 1、把源文件直接给他 2、把我们的源代码打包成库 库 头文件。 原理&#xff1a;把所有的.o文件打包成.a文件也…