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

Visual Studio中Python项目Import 'docx'无法解析错误求助

解决导入与运行报错的方案

一、先处理「Import 'docx'无法解析」问题

  • 确认VS Code使用的Python解释器和安装python-docx的环境一致:
    1. 点击VS Code左下角显示的Python版本号,弹出环境选择列表。
    2. 选择你执行pip install python-docx时对应的环境(比如虚拟环境、系统默认Python)。
  • 修正导入语句:代码里写的from docx import Documents是错误的,正确类名为单数的Document,改成:
    from docx import Document
    

二、修正代码中的其他错误

你的代码存在缩进、API使用错误等问题,以下是修正后的完整代码:

import os
from docx import Document

# 确保输出目录存在,避免保存时报错
src_dir = "documents"
dst_dir = "output"
os.makedirs(dst_dir, exist_ok=True)

# 遍历源目录文件
for file in os.listdir(src_dir):
    # 仅处理docx格式文件
    if file.endswith(".docx"):
        doc_path = os.path.join(src_dir, file)
        # 打开源文档
        doc = Document(doc_path)
        
        # 创建新文档用于存放提取的表格
        new_doc = Document()
        for table in doc.tables:
            # 复制表格:先创建与原表格行列数一致的新表格
            new_table = new_doc.add_table(rows=len(table.rows), cols=len(table.columns))
            # 逐行逐单元格复制内容
            for row_idx, row in enumerate(table.rows):
                for col_idx, cell in enumerate(row.cells):
                    new_table.cell(row_idx, col_idx).text = cell.text
        
        # 保存包含所有表格的新文档
        new_doc.save(os.path.join(dst_dir, f"tables_extracted_{file}"))
        
        # 处理第一个docx文件后退出循环
        break

关键修正点说明:

  • 修复缩进:if语句必须缩进在for循环块内,否则Python会判定为语法错误。
  • 修正表格复制逻辑:python-docx的add_table方法不能直接传入现有表格对象,需要手动创建新表格并逐单元格复制内容。
  • 添加目录创建逻辑:用os.makedirs确保输出目录存在,避免保存文件时因目录不存在报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:10:22