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

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("[email protected]", "your_password", "[email protected]", "脚本执行完毕", "脚本已成功执行!")

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 协议, 并注意数据安全。

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

相关推荐
腾讯TNTWeb前端团队5 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰8 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪9 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪9 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy9 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom10 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom10 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom10 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom10 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom10 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试