Python在邮件中以固定宽度打印文本

时间:2018-10-02 15:43:41

标签: python python-3.x smtp smtplib

我希望以漂亮的方式打印出来并通过邮件发送出去。 string formatting被应用。

这是我的代码:

"{:<40s}".format("   Expected total delivery:") + "|" + "{:>10s}".format(`number`) + "{:>10s}".format(" (" + `percentage` + ")") + "\n" + \
"{:<40s}".format("   Current delivery:") + "|" + "{:>10s}".format(`number`) + "{:>10s}".format(" (" + `percentage` + ")") + "\n" + \
"{:<40s}".format("   Suggested Daily Delivery:") + "|" + "{:>10s}".format(`number`) 

预期结果: Expected total delivery: | number (percentage) Suggested Daily Delivery: | number (percentage) Current delivery: | number

已发送邮件的实际情况:

screencap from mail

我认为这是邮寄引起的问题。但是,我无法弄清楚。

number

有什么建议可以建议吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

您似乎在混淆文本格式和呈现字体。文本格式是程序生成的ASCII代码序列;这就是您使用发布的“字符串格式”处理的。渲染(这些字符如何影响您在屏幕上看到的内容)是您发送的文本和显示软件之间的交互。您正在使用MIME格式。

您需要查看MIMEText文档,以找到界面和显示设备上支持的固定宽度字体。几乎可以肯定这是一个简单的更改,将plain替换为适当的字体,例如courier