首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Docx转换为纯文本

将Docx转换为纯文本
EN

Stack Overflow用户
提问于 2017-06-25 05:44:22
回答 2查看 5.1K关注 0票数 2

我正在尝试将docx文件转换为文本,但一直收到错误。我用的是python 2-7

代码语言:javascript
运行
复制
import docx

def getText(filename):
    doc = docx.Document(filename)
    fullText = []
    for para in doc.paragraphs:
        fullText.append(para.text)
    return '\n'.join(fullText)

回溯:

代码语言:javascript
运行
复制
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2019' in position 764: character maps to <undefined>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-25 06:01:06

它看起来不像\u2019,也可能不像\u2018。这些是左边和右边的单引号。我会将unicode数据编码为ascii,并忽略任何无法转换的内容,以便将其删除:

代码语言:javascript
运行
复制
import docx

def getText(filename):
    doc = docx.Document(filename)
    fullText = []
    for para in doc.paragraphs:
        txt = para.text.encode('ascii', 'ignore')
        fullText.append(txt)
    return '\n'.join(fullText)
票数 4
EN

Stack Overflow用户

发布于 2017-06-25 06:05:06

看起来这个单引号有问题。你能做类似这样的事情吗:

代码语言:javascript
运行
复制
import docx

def getText(filename):
    doc = docx.Document(filename)
    new_doc = doc.replace(u"\u2019", "'")
    fullText = []
    for para in new_doc.paragraphs:
        fullText.append(para.text)
    return '\n'.join(fullText)

从我的手机上回复所以我不能测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44741226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档