2012-03-07 111 views
0

我已经使用imapclient和poplib在Python中编写了一些代码来从我的在线账户收集我的电子邮件。收到的电子邮件被保存为纯文本文件。如何转换包含 r n的文本以表示python中的回车和换行

当我使用POP3收到我的电子邮件时,它完全保存在文本文件中,所有回车符和行距都在正确的位置。我相信这是因为POP3电子邮件逐行保存,所以它会自动实现每条新线路的回车。

IMAP另一方面并不那么友好。 IMAP文本包含所有\ r \ n与偶尔的\ t,但是当我在vi,记事本,wordpad和word中查看文本文件时,它们都没有实现回车,换行或制表符。

从我读到的原因是因为这些程序只是看到\ r \ n作为文本,不知道该怎么做。

所以我的问题是,如何转换IMAP文本,以便在Windows和Linux中使用Python确定它的真实含义。

谢谢。

回答

2

尝试email_content.decode('string_escape')

例子:

>>> s = r'a\tb\nc' 
>>> print s.decode('string_escape') 
a b 
c 
+0

谢谢你的回复,似乎把它做好涵盖了根本。我在哪里可以找到有关解码及其选项的详细信息'string_escape'?我没有多少运气找到python doco。再次感谢。 – user788462 2012-03-07 20:46:08

+1

@ user788462 http://docs.python.org/library/codecs.html – 2012-03-07 20:58:12

+0

再次感谢您阅读'string_escape' - 在Python源代码中生成适合作为字符串字面值的字符串。即使我发现这一点,我也不知道它会执行\ r \ n等这些答案提醒我,我知道soooo一点:( – user788462 2012-03-07 21:16:17

相关问题