| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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"
- )
|