26 lines
759 B
Python
26 lines
759 B
Python
import os
|
|
from docx import Document
|
|
from PyPDF2 import PdfReader
|
|
from app.services.file_storage import get_file_content
|
|
|
|
|
|
async def parse_reference_file(file_path: str) -> str:
|
|
ext = os.path.splitext(file_path)[1].lower()
|
|
|
|
content = await get_file_content(file_path)
|
|
|
|
if ext == ".txt":
|
|
return content.decode("utf-8", errors="ignore")
|
|
|
|
if ext == ".docx":
|
|
from io import BytesIO
|
|
doc = Document(BytesIO(content))
|
|
return "\n".join(p.text for p in doc.paragraphs if p.text.strip())
|
|
|
|
if ext == ".pdf":
|
|
from io import BytesIO
|
|
reader = PdfReader(BytesIO(content))
|
|
return "\n".join(page.extract_text() or "" for page in reader.pages)
|
|
|
|
raise ValueError(f"不支持的文件格式: {ext}")
|