from core.router import Parser from models.result import ParseResult from utils.logger import log class TextParser(Parser): """文本文件解析器""" async def parse(self, file_path: str) -> ParseResult: """ 解析文本文件 Args: file_path: 文件路径 Returns: ParseResult: 解析结果 """ log.info(f"开始解析文本文件: {file_path}") try: # 读取文本文件内容 with open(file_path, 'r', encoding='utf-8', errors='replace') as f: content = f.read() # 构建解析结果 result = ParseResult( content=content, metadata={ "file_size": len(content), "line_count": len(content.split('\n')) }, file_type="text" ) log.info(f"文本文件解析完成,大小: {len(content)} 字符") return result except Exception as e: log.error(f"文本文件解析失败: {str(e)}") return ParseResult( content="", metadata={"error": str(e)}, file_type="text" )