import os import logging import extract logger = logging.getLogger(__name__) def extractTextAuto(file_path: str) -> str: if not os.path.exists(file_path): raise FileNotFoundError(f"文件不存在:{file_path}") # 获取文件拓展名 ext = os.path.splitext(file_path)[-1].lower() try: # 如果是pdf文件 if ext == ".pdf": logger.info(f"检测到PDF文件,开始提取文本: {file_path}") return extract.extract_pdf_text(file_path) # 如果是Word文档 elif ext in [".docx", ".doc"]: logger.info(f"检测到Word文件,开始提取文本: {file_path}") return extract.extract_text_from_word(file_path) # 如果是Excel文件 elif ext in [".xlsx", ".xls"]: logger.info(f"检测到Excel文件,开始提取文本: {file_path}") return extract.extract_text_from_excel(file_path) # 如果是PPT文件 elif ext in [".pptx", ".ppt"]: logger.info(f"检测到PPT文件,开始提取文本: {file_path}") return extract.extract_ppt_text(file_path) # 如果是HTML文件 elif ext in [".html", ".htm"]: logger.info(f"检测到HTML文件,开始提取文本: {file_path}") return extract.extract_text_from_html(file_path) # 如果是XML文件 elif ext == ".xml": logger.info(f"检测到XML文件,开始提取文本: {file_path}") return extract.extract_xml_text(file_path) # 如果是CSV文件 elif ext == ".csv": logger.info(f"检测到CSV文件,开始提取文本: {file_path}") return extract.read_csv_to_text(file_path) # 如果是JSON文件 elif ext == ".json": logger.info(f"检测到JSON文件,开始提取文本: {file_path}") return extract.extract_text_from_json(file_path) # 如果是纯文本、Markdown、JSONL文件 elif ext in [".md", ".txt", ".jsonl"]: logger.info(f"检测到文本/Markdown/JSONL文件,开始读取: {file_path}") return extract.read_text_file(file_path) # 其余不支持的文件类型 else: logger.error(f"不支持的文件类型: {ext}") raise ValueError(f"不支持的文件类型: {ext}") except Exception as e: raise