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

news2024/11/22 9:12:04

1. 批量重命名文件

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

import os

def 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_ext
      old_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 os

def 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).content
      img_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 MIMEText

def 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'] = subject
  msg['From'] = sender_email
  msg['To'] = receiver_email

  try:
    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 csv

def 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 csv

def 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 BeautifulSoup

def 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 webdriver

def 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 Image

def 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 plt

def 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 Flask

app = Flask(__name__)

@app.route("/")
def hello():
  return "Hello, world!"

if __name__ == "__main__":
  app.run(debug=True)

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencascade AIS_Triangulation源码学习 每个三角形顶点关联颜色

opencascade AIS_Triangulation 每个三角形顶点关联颜色 前言 交互对象,从 Poly_Triangulation 绘制数据,可选择性地带有与每个三角形顶点关联的颜色。 为了最大效率,颜色以32位整数表示,而不是传统的 Quantity_Color 值。 目前尚…

Swift中@escaping的理解与使用

当我们在一个方法中将一个闭包当做参数的时候,那么就有很大概率用到这个escaping关键字了,试想一般什么时候会将闭包当做参数传进来呢?很多时候比如方法里面有异步操作,需要方法先return,最后再调用闭包返回结果&#…

论数据驱动的优雅:构建轻量高效的数据中台-亿发

随着数据处理需求的不断增长,各类企业都在探索如何更高效地管理和利用数据。特别是在大规模数据应用的背景下,数据中台成为了众多企业优化数据管理的关键解决方案。从数据中台的建设需求到其实际应用,本文将详细解析数据中台的发展历程、建设…

.NET 一款反序列化打入冰蝎内存马的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

用Python编写你的网络监控系统详解

概要 在现代网络管理中,实时监控网络流量和状态是保证网络正常运行的关键。使用Python编写网络监控工具可以帮助管理员及时发现和解决网络问题。本文将详细介绍如何使用Python编写网络监控工具,包括基本概念、常用库及其应用场景,并提供相应的示例代码。 网络监控的基本概念…

nginx反向代理严重错误[crit] (13: Permission denied) while reading upstream问题

nginx作为使用最广泛的一款反向代理软件,其性能也是非常优秀的,一般情况下,直接配置就可以使用,而且也都是稳定高效的,但是在实际应用中,对于不同的应用场景,总是会出现各种各样的问题&#xff…

nanopc-t4线刷Android10编译源码

文章目录 windows线刷Linux编译一撸到底核心编译命令最终Image目录源码和刷机工具放一个目录下线刷走一波,不能有任何报错windows线刷 https://www.myteamcloud.top/?p=266 Linux编译一撸到底 https://blog.csdn.net/wb4916/article/details/134911430 核心编译命令 ./b…

全网首创!基于GaitSet的一种多人步态识别方法公示

有源代码V细聊,可商用/私用/毕设等:NzqDssm16 🍉1 绪论 经过相关研究确认,步态识别是足以达到应用级别的生物识别技术,在现代社会中自始至终都存在着广泛的应用前景。之所以迟迟没有普及,主要是实…

docker配置阿里镜像加速器

‌阿里云镜像加速的核心功能是通过提供官方的镜像站点,加速官方镜像的下载。使用容器时,由于网络原因,下载‌Docker官方镜像可能会需要很长时间,甚至下载失败。阿里云容器镜像服务‌ACR(阿里云容器仓库)为此…

智慧大楼信息化一体化管理整体建设设计方案(可编辑80页PPT)

随着信息技术的飞速发展,智慧大楼已成为现代城市建设的重要趋势。本项目旨在通过信息化一体化管理整体建设设计方案,将大楼内的各个系统进行有机整合,实现智能化、高效化的管理与服务。通过该方案,我们期望提升大楼的运营效率、安…

【网络基础】初识网络 {计算机网络背景;网络协议初识;网络传输基本流程;网络中的地址管理;网络设备简单介绍}

一、计算机网络背景 1.1 网络发展 计算机网络的发展可以追溯到20世纪60年代,那时候最初的计算机网络只是为了让科学家们能够共享计算机资源和数据。但是在20世纪80年代,互联网的出现彻底改变了计算机网络的面貌,使得人们可以随时随地通过互…

昇思25天学习打卡营第XX天|Vision Transformer图像分类

好了👌到我最熟悉的模型了,苦苦缠斗几个月呜呜呜 CLIP预训练数据集薄纱了,这个对齐的思路很好,但是对文本图像长度限制更高,作者很可惜

详细分析nohup后台运行命令

目录 1. 基本知识2. Demo 1. 基本知识 Unix/Linux 命令,用于在后台运行程序,并确保它在用户退出或注销后继续运行 nohup 的主要作用是使程序在终端会话结束后继续运行,这对需要长时间执行的任务特别有用 基本的用法如下: nohu…

计算机网络课程介绍

计算机网络课程的核心内容与应用,涵盖多个关键协议与技术的深入理解,旨在全面培养学生的网络设计、分析及实际操作能力。以下是对该课程的严谨阐述: 一、课程核心原理与应用 本课程详尽阐述了IP协议簇的基本原理与应用,具体涵盖I…

Github 2024-08-02Java开源项目日报 Top9

根据Github Trendings的统计,今日(2024-08-02统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9Vue项目1Ruby项目1Java设计模式:提高开发效率的正规化实践 创建周期:3572 天开发语言:Java协议类型:OtherStar数量:86766 个Fork数…

ECCV 2024 | 深入探索GAN先验,哈工大、清华提出模型反演新方案

介绍 模型反演(MI)攻击的目的是利用输出信息从已发布的模型中重建隐私敏感的训练数据,这引起了人们对深度神经网络(DNNs)安全性的广泛关注。近年来,生成对抗网络(GANs)因其强大的图像…

4.Rabbon-微服务负载均衡

Rabbon-微服务负载均衡 1.Ribbon是什么1.1 基本概念1.2 主要功能1.3 负载均衡流程1.4 负载均衡策略 2.Ribbon如何使用2.1 基于配置文件的配置:2.2 基于注解的配置: 1.Ribbon是什么 Ribbon是Netflix发布的一个负载均衡器,它主要用于控制HTTP和…

PT4103B23F 白光LED升压转换器芯片IC

一般概述 PT4103是一款升压型DC/DC转换器,设计用于以恒流方式驱动单个锂离子电池中的多达8个串联的白光LED。由于PT4103直接调节输出电流,因此它非常适合驱动发光二极管(LED),其光强度与流经它们的电流成正比,而不是与它们…

Bugku-Web篇:Simple_SSTI_1

1.很简单的模板注入,直接f12查看源代码。 2.这里了解了一下什么是模板注入 这里针对的是flask模板,config是flask模板中的一个全局对象。包含了所有应用程序的配置值。 这里直接在url中写上 ?flag{{config.SECRET_KEY}}

力扣第四十八题——旋转图像

内容介绍 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9…