首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中重新编码utf-8格式的mbox文件?

如何在Python中重新编码utf-8格式的mbox文件?
EN

Stack Overflow用户
提问于 2020-06-30 21:03:34
回答 1查看 106关注 0票数 0

我已经导出了一堆Gmail消息,并希望使用Python解析它们并获得洞察力。然而,在导出时,我意识到在这些mbox文件中有一个奇怪的编码,例如字符'é‘被转换为=E9,引号符号(“和”)被转换为=E2=80=9C=E2=80=9D。我的电子邮件经常有很多外国文字,因此将这些文件解码为utf-8对我来说非常重要。此外,我也经常有表情符号的信息,这些表情符号也传达了我需要保存的重要情感信息。

我发现这种编码被称为Quoted Printable,并且我尝试使用quopri Python模块,但是没有成功。

以下是我的简化代码:

代码语言:javascript
运行
复制
import os
import quopri
from pathlib import Path

for filename in os.listdir(directory):
    if filename.endswith(".mbox"): 
        input_filename =  Path(os.path.join(directory,filename))
        output_filename = Path(os.path.join(directory,filename+'_utf-8'))

        with open(input_filename, 'rb'):
            quopri.decode(input_filename, output_filename)

但是,在运行此命令时,我在最后一行得到以下错误:AttributeError: 'WindowsPath' object has no attribute 'read'。我不明白为什么会出现这个错误,因为定义的路径指向文件。

EN

Stack Overflow用户

回答已采纳

发布于 2020-06-30 21:15:54

您需要为上下文管理器( with语句)声明名称,如下所示:

代码语言:javascript
运行
复制
with input_filename.open('rb') as infile, output_filename.open('wb') as outfile:
    quopri.decode(infile, outfile)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62658124

复制
相关文章

相似问题

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