精选9个自动化任务的Python脚本精选

大家好,我是老邓,今天我们来一起学习如何用Python进行一些常见的自动化操作,涉及文件处理、网络交互等实用技巧。即使你没有任何Python基础也没关系,我会用最通俗易懂的语言来讲解。

  1. 对目录中的文件进行排序

    import os

    def sort_files(dir_path):
    """对指定目录下的文件进行排序。"""
    files = os.listdir(dir_path) # 获取目录下所有文件和文件夹的名称
    files.sort() # 按文件名排序
    print(f"排序后的文件列表:{files}")

    示例用法

    sort_files(".") # 对当前目录下的文件排序

  2. 删除空文件夹

    import os
    import shutil

    def remove_empty_dirs(dir_path):
    """递归删除指定目录下的空文件夹。"""
    for item in os.listdir(dir_path):
    item_path = os.path.join(dir_path, item)
    if os.path.isdir(item_path): # 判断是否为文件夹
    if not os.listdir(item_path): #判断文件夹是否为空
    shutil.rmtree(item_path) # 删除空文件夹
    print(f"已删除空文件夹:{item_path}")
    else: # 如果子文件下还有文件夹则递归删除
    remove_empty_dirs(item_path)

    示例用法(创建一个空文件夹进行测试)

    os.makedirs("empty_dir", exist_ok=True)
    remove_empty_dirs(".")

  3. 重命名多个文件

    import os

    def rename_files(dir_path, prefix="new_"):
    """批量重命名指定目录下的文件。"""
    i = 1
    for filename in os.listdir(dir_path):
    if os.path.isfile(os.path.join(dir_path, filename)): # 判断是否为文件
    base, ext = os.path.splitext(filename) # 分离文件名和扩展名
    new_name = f"{prefix}{i}{ext}"
    os.rename(os.path.join(dir_path, filename), os.path.join(dir_path, new_name)) # 重命名
    print(f"已将 {filename} 重命名为 {new_name}")
    i += 1

    示例用法(需要在目录下创建一些测试文件)

    create_test_files(".") # 假设你创建了几个测试文件

    rename_files(".")

  4. 从网站提取数据 (示例:提取标题)

    import requests
    from bs4 import BeautifulSoup

    def extract_title(url):
    """提取指定网页的标题。"""
    try:
    response = requests.get(url)
    response.raise_for_status() # 检查请求是否成功

    复制代码
       soup = BeautifulSoup(response.content, "html.parser")
       title = soup.title.string  # 获取标题
       print(f"网页标题:{title}")
       return title
    
     except requests.exceptions.RequestException as e:
       print(f"请求出错:{e}")
       return None

    示例用法

    extract_title("https://www.mayobang.com")

  5. 批量下载网站图片 (示例:下载指定网页的所有图片)

    import requests
    import os
    from bs4 import BeautifulSoup
    from urllib.parse import urljoin

    def download_images(url, save_dir="images"):
    """下载指定网页的所有图片。"""
    try:
    response = requests.get(url)
    response.raise_for_status()

    复制代码
       soup = BeautifulSoup(response.content, "html.parser")
       os.makedirs(save_dir, exist_ok=True)  # 创建保存目录
    
       for img in soup.find_all("img"):
           img_url = urljoin(url, img.get("src"))  # 获取图片的完整URL
           try:
             img_data = requests.get(img_url).content
             filename = os.path.join(save_dir, os.path.basename(img_url))
             with open(filename, "wb") as f:
                 f.write(img_data)
             print(f"已下载图片:{img_url}")
           except Exception as e:
               print(f"下载图片出错:{e}")
     except Exception as e:
       print(f"出错:{e}")

    示例用法 (请替换为实际的网址)

    download_images("https://www.example.com/images")

  6. 自动提交表单 (示例:简单表单提交)

    import requests

    def submit_form(url, data):
    """自动提交表单。"""
    try:
    response = requests.post(url, data=data)
    response.raise_for_status()
    print(f"表单提交成功:{response.text}")
    except requests.exceptions.RequestException as e:
    print(f"表单提交失败:{e}")

    示例用法(需要一个实际的表单提交URL和数据)

    sample_data = {"name": "老邓", "email": "laodeng@example.com"}

    submit_form("https://www.example.com/submit", data=sample_data)

  7. 计算文本文件中的字数

    def count_words(filepath):
    """计算文本文件中的字数。"""
    try:
    with open(filepath, "r", encoding="utf-8") as f: # 使用utf-8编码读取文件
    content = f.read()
    word_count = len(content)
    print(f"文件 {filepath} 中的字数为:{word_count}")
    except FileNotFoundError:
    print(f"文件未找到:{filepath}")

    示例用法 (需要创建一个测试文件 test.txt)

    with open("test.txt", "w") as f:
    f.write("你好,世界!")

    count_words("test.txt")

  8. 文件中的文本查找和替换

    import re

    def find_and_replace(filepath, pattern, replacement):
    """在文件中查找并替换文本。"""
    try:
    with open(filepath, "r+", encoding="utf-8") as f:
    content = f.read() # 读取文件内容
    new_content = re.sub(pattern, replacement, content) #用正则表达式替换
    f.seek(0) # 将文件指针移到开头
    f.write(new_content) # 写入替换后的内容
    f.truncate() # 删除多余内容
    print(f"已在文件 {filepath} 中完成替换。")
    except FileNotFoundError:
    print(f"文件未找到:{filepath}")

    示例用法

    find_and_replace("test.txt", "世界", "Python")

  9. 生成随机文本

    import random
    import string

    def generate_random_text(length=10):
    """生成指定长度的随机文本。"""
    letters = string.ascii_letters + string.digits # 包含字母和数字
    random_text = ''.join(random.choice(letters) for i in range(length))
    print(f"生成的随机文本:{random_text}")

    示例用法

    generate_random_text(20)

总结: 今天的课程涵盖了文件操作和网络交互的多个自动化脚本,希望大家能动手实践,加深理解。

熟练掌握这些技巧,能大大提高你的工作效率。请关注老邓的Python入门教室,我们下次再见!

相关推荐
-雷阵雨-2 分钟前
MySQL——数据类型
数据库·mysql
2401_831501736 分钟前
Python学习之Day07-08学习(Django网页Web开发)
python·学习·django
LB211219 分钟前
Redis 黑马skyout
java·数据库·redis
Tiny番茄21 分钟前
leetcode 3. 无重复字符的最长子串
数据结构·python·算法·leetcode
TDengine (老段)27 分钟前
TDengine 浮点数新编码 BSS 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)31 分钟前
TDengine 数学函数 ASIN() 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
胡斌附体36 分钟前
离线docker安装jupyter(python网页版编辑器)
python·docker·jupyter·image·tar·save
java1234_小锋2 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras实现逻辑回归
python·深度学习·tensorflow·tensorflow2
java1234_小锋2 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - Sequential顺序模型
python·深度学习·tensorflow·tensorflow2
雨夜的星光6 小时前
Python JSON处理:load/loads/dump/dumps全解析
开发语言·python·json