You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何升级处理HTML文件的Python调用Pipeline代码以增加检查机制?

升级Python代码批量处理目录下的HTML文件

嘿,我来帮你搞定这个需求!结合你提到的场景——要处理../path/下大量HTML文件,还要增加必要的检查逻辑,我整理了优化后的代码,一步步给你拆解:

完整升级代码

import subprocess
import os

# 把路径定义成常量,后续修改维护更方便
INPUT_DIR = "../path"
OUTPUT_DIR = "../output"
DATA_DIR = "../data"
TEMP_DIR = "../temp"

def process_html_files():
    # 先检查输出目录,不存在就自动创建,避免Pipeline报错
    if not os.path.exists(OUTPUT_DIR):
        os.makedirs(OUTPUT_DIR)
        print(f"已创建输出目录: {OUTPUT_DIR}")
    
    # 检查输入目录是否存在,提前报错终止,避免后续白忙活
    if not os.path.isdir(INPUT_DIR):
        print(f"错误:输入目录 {INPUT_DIR} 不存在,请检查路径!")
        return
    
    # 遍历目录下所有文件,只处理HTML后缀的
    for filename in os.listdir(INPUT_DIR):
        if filename.lower().endswith(".html"):
            file_path = os.path.join(INPUT_DIR, filename)
            # 确保是文件不是子目录
            if os.path.isfile(file_path):
                print(f"开始处理: {filename}")
                # 调用Pipeline进程,同时捕获错误输出
                p = subprocess.Popen(
                    ["./process", "-d", DATA_DIR, "-t", TEMP_DIR, "-o", OUTPUT_DIR, file_path],
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE,
                    text=True  # 直接以文本模式读取输出,不用手动解码
                )
                out, err = p.communicate()
                
                # 检查进程执行状态,判断处理是否成功
                if p.returncode == 0:
                    print(f"{filename} 处理完成 ✅")
                    # 可选:如果需要查看进程输出,解开下面的注释
                    # print(f"进程输出: {out}")
                else:
                    print(f"{filename} 处理失败 ❌,状态码: {p.returncode}")
                    print(f"错误详情: {err}")

if __name__ == "__main__":
    process_html_files()

核心升级点说明

  • 路径规范化:把分散的路径改成常量,避免字符串拼接出错,后续改路径也更省心。
  • 前置检查逻辑:
    • 自动创建输出目录,解决Pipeline因目录不存在报错的问题。
    • 提前校验输入目录是否存在,快速给出错误提示,避免无效遍历。
  • 批量处理能力:自动遍历目录下所有HTML文件,跳过子目录,不用手动逐个指定文件名。
  • 错误排查优化:新增捕获错误输出,同时检查进程状态码,能快速定位哪个文件处理失败、失败原因是什么。

可选扩展(按需添加)

如果需要更精细的控制,还可以加这些功能:

  • 跳过空的HTML文件,避免无意义的处理。
  • 把处理日志写入文件,方便后续复盘。
  • 用多进程并行处理,提升批量处理的效率(如果你的Pipeline支持并行的话)。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:42:27