写入文件时出现Python UnicodeEncodeError

时间:2017-11-03 09:51:49

标签: python file unicode pdfminer

我正在使用“pdfminer.six”,一个python库,从我拥有的几个PDF中提取所有文本。我的方法完美无缺,但是对于一些pdf,可能有一些特殊的字符,当我将它写入文本文件时,我得到“Unicode编码错误:'charmap'编解码器不能编码字符'\ u03b2'位置271130:字符映射到“。 现在,我知道“正在发生什么”,但我想知道如何以最好的方式对待它。这是让我头疼的部分:

    with open("newTxtFile.txt", "w") as textFile:
        textFile.write(text)

由于我来自巴西并且文本是葡萄牙语,我想保持所有重点,所以我使用pdfminer“codec ='latin-1'”。保存之前打印,据我所知,直到最后完美无缺,但每当我尝试保存到文件时,我都会收到UnicodeEncodeError。

我想到的两个选择是: 要么我找到一种方法来只捕捉给我带来麻烦的特定角色:

    with open("newTxtFile.txt", "w") as textFile:
    try:
        textFile.write(text)
    except UnicodeEncodeError:
        ????

但我不知道除了那个应该是什么?

或者我应该以不同的方式保存文件。

有人能给我一些提示吗?非常感谢提前!

1 个答案:

答案 0 :(得分:0)

尝试:

with open("newTxtFile.txt", "wb") as textFile:
    textFile.write(text.encode('utf8'))

阅读它:

with open("newTxtFile.txt", "rb") as textFile:
    text = textFile.read().decode('utf8')