实用脚本能辅助吗?

wen 实用脚本 9

本文目录导读:

实用脚本能辅助吗?

  1. 文件批量重命名(Python)
  2. 文本文件内容搜索与替换(Shell)
  3. 定时自动备份(Python + Cron)
  4. Excel数据清洗(Python + pandas)
  5. 网络状态监控(Bash)
  6. 图片批量压缩(Python + PIL)
  7. 邮件批量发送(Python + smtplib)
  8. 如何选择脚本?
  9. 注意事项

当然可以!实用脚本在日常工作中能极大提升效率,减少重复劳动,以下是一些常见场景下的实用脚本示例,覆盖文件处理、数据整理、自动化任务等,你可以根据需求直接使用或调整:

文件批量重命名(Python)

  • 场景:将文件夹内所有 .txt 文件按规则重命名(如添加日期前缀)。

  • 脚本

    import os
    from datetime import datetime
    folder_path = "/path/to/your/folder"
    prefix = datetime.now().strftime("%Y%m%d_")
    for filename in os.listdir(folder_path):
        if filename.endswith(".txt"):
            new_name = prefix + filename
            os.rename(os.path.join(folder_path, filename), 
                      os.path.join(folder_path, new_name))

文本文件内容搜索与替换(Shell)

  • 场景:在多个 .log 文件中将 old_text 替换为 new_text
  • 脚本
    #!/bin/bash
    find /path/to/logs -type f -name "*.log" -exec sed -i 's/old_text/new_text/g' {} \;

定时自动备份(Python + Cron)

  • 场景:每天凌晨自动备份重要目录到指定位置。

  • 脚本

    import shutil
    import os
    from datetime import datetime
    src = "/home/user/documents"
    dst = f"/home/user/backup/{datetime.now().strftime('%Y-%m-%d')}"
    shutil.copytree(src, dst)
  • Cron配置(Linux):

    0 2 * * * python /path/to/backup_script.py

Excel数据清洗(Python + pandas)

  • 场景:合并多个Excel文件,删除空行,输出为CSV。

  • 脚本

    import pandas as pd
    import glob
    # 合并所有Excel文件
    all_files = glob.glob("data_*.xlsx")
    df_list = [pd.read_excel(f) for f in all_files]
    merged_df = pd.concat(df_list, ignore_index=True)
    # 删除全空行
    cleaned_df = merged_df.dropna(how='all')
    # 保存为CSV
    cleaned_df.to_csv("cleaned_data.csv", index=False)

网络状态监控(Bash)

  • 场景:每隔5秒检查网站是否可达,失败时写入日志。
  • 脚本
    #!/bin/bash
    while true; do
        if ! wget -q --tries=1 --timeout=2 https://example.com; then
            echo "$(date): FAILED" >> /var/log/net_monitor.log
        fi
        sleep 5
    done

图片批量压缩(Python + PIL)

  • 场景:将目录下所有JPEG图像压缩到指定质量(适合网页优化)。

  • 脚本

    from PIL import Image
    import os
    folder = "/path/to/images"
    for fname in os.listdir(folder):
        if fname.lower().endswith(('.jpg', '.jpeg')):
            img = Image.open(os.path.join(folder, fname))
            img.save(os.path.join(folder, f"compressed_{fname}"),
                     quality=40, optimize=True)

邮件批量发送(Python + smtplib)

  • 场景:从CSV文件读取收件人列表,发送模板邮件。

  • 脚本

    import smtplib
    import csv
    from email.mime.text import MIMEText
    # 读取收件人列表
    with open('recipients.csv') as f:
        reader = csv.reader(f)
        for name, email in reader:
            msg = MIMEText(f"Hi {name}, this is a test email.")
            msg['Subject'] = "Automated Email"
            msg['From'] = "you@example.com"
            msg['To'] = email
            with smtplib.SMTP('smtp.example.com', 587) as server:
                server.starttls()
                server.login("your_email", "password")
                server.send_message(msg)

如何选择脚本?

  • 简单任务:优先用Shell(Linux)或批处理(Windows),无需额外环境。
  • 复杂逻辑:Python更灵活(需安装解释器)。
  • 跨平台:Python/JS(Node.js)。

注意事项

  • 测试环境:先在副本或测试目录运行,避免误操作。
  • 权限问题:脚本可能需要执行权限(Linux:chmod +x script.sh)。
  • 依赖安装:Python脚本需先安装库(如 pip install pandas pillow)。

如果需要针对特定场景的脚本(如PDF处理、爬虫、数据库操作等),可以告诉我具体需求,我会生成更贴合的代码!

抱歉,评论功能暂时关闭!