Python - 列表中每个项目后的换行符

时间:2016-05-25 19:29:14

标签: python python-2.7 loops

我有一个空列表和一个循环。循环结果附加到空列表。该列表然后通过电子邮件发送给我,但它以['item1', 'item2]的形式出现我希望此列表的格式如下:

item1
item2

我的代码看起来像这样:

list = []

def function_name():
    for item in items:
        r = requests.get(item)
        results = r.status_code, r.url
        print(results, time.strftime('%Y-%m-%d'))
        for s_code in results:
            list.append(s_code)

    msg = str(list)
    subject = 'Hello'
    sender = 'me@example.com'
    recepient = 'you@example.com'

    s = smtplib.SMTP('localhost')
    s.sendmail('address1@example.com', 'address2@example.com', msg)
    s.quit()

check_broken_links()

当我删除str并执行msg = '\n'.join(list)时,我收到错误,因为我正在合并intstr,如此行results = r.status_code, r.url所示str离开{{ 1}}返回一行中的每个可迭代,因此也不好。

PS 仍在处理我的邮件功能,它有点草率,但它发送。

2 个答案:

答案 0 :(得分:4)

为电子邮件构建文本时,请将列表转换为包含此行

等新行的字符串
text = '\n'.join(list)

如果您要发送html电子邮件,则可能需要执行此操作

text = '<br/>'.join(list)

答案 1 :(得分:2)

要解析数字列表中的str.join,请运行列表推导进行转换:

msg = '\n'.join([str(i) for i in list])