You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将嵌套列表转换为纯文本表格插入非HTML邮件正文

Python嵌套列表转纯文本表格最优实现方案

针对你需要将嵌套列表转为对齐纯文本表格、嵌入非HTML邮件的需求,推荐以下两种可直接落地的方案,按需选择即可:

方案1:无第三方依赖原生实现

适合运行环境无法安装额外库的场景,逻辑轻量可定制,自带中文对齐适配:

def generate_plain_table(header, rows):
    # 计算每列最大显示宽度(用gbk编码长度适配全角中文占位宽度)
    col_widths = [max(len(str(cell).encode('gbk')) for cell in col) for col in zip(header, *rows)]
    # 生成分隔线
    separator = '-' * (sum(col_widths) + 3 * len(col_widths) + 1)
    # 单行内容格式化函数
    def format_row(row):
        return '| ' + ' | '.join(f'{str(cell):<{w}}' for cell, w in zip(row, col_widths)) + ' |'
    # 拼接完整表格
    table_lines = [
        separator,
        format_row(header),
        separator,
        *[format_row(row) for row in rows],
        separator
    ]
    return '\n'.join(table_lines)

# 示例调用
if __name__ == '__main__':
    # 自定义表头
    header = ['品牌', '颜色', '车门配置', '车型']
    # 你的嵌套列表数据
    L = [
        ['马自达', '红色', '四门', '轿车'],
        ['丰田', '黑色', '四门', '轿车'],
        ['本田', '蓝色', '五门', 'SUV']
    ]
    table = generate_plain_table(header, L)
    # 拼接邮件正文
    mail_content = '感谢您查看以下车型信息:\n' + table
    print(mail_content)

运行后输出的纯文本表格兼容性极强,所有邮件客户端都可正常显示,不会出现格式错乱。

方案2:借助prettytable库(开发效率最高,优先推荐)

如果环境允许安装第三方库,直接用专门生成纯文本表格的prettytable库,不用自己处理对齐、边框逻辑,容错率更高:

  1. 先安装依赖:pip install prettytable
  2. 调用示例:
from prettytable import PrettyTable

# 示例数据
L = [
    ['马自达', '红色', '四门', '轿车'],
    ['丰田', '黑色', '四门', '轿车'],
    ['本田', '蓝色', '五门', 'SUV']
]
# 初始化表格传入表头
table = PrettyTable(['品牌', '颜色', '车门配置', '车型'])
# 批量添加行数据
table.add_rows(L)
# 转纯文本字符串拼入邮件正文
mail_content = '感谢您查看以下车型信息:\n' + str(table)
print(mail_content)

邮件发送注意事项

调用Python的email模块构建邮件时,将MIME类型设置为text/plain,直接把生成的mail_content作为正文传入即可,所有支持纯文本邮件的客户端都可以正常显示对齐的表格效果。


内容的提问来源于stack exchange,提问作者Min

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:24:04