当我使用f-string打印供应商名称时,我使用以下代码:
for i in range(1,10):
print(f'{df_supplier_number["SUPPLIER NAME"][i]}')结果如下:
supplier 1
supplier 2
supplier 3
supplier 4
supplier 5
...但是当使用这种方法写电子邮件时,我就不工作了。
for i in range(1,10):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.Subject = f'{df_supplier_number["SUPPLIER NAME"][i]}' + "_test"
mail.To = "test@mail.com"
mail.HTMLBody = r"""
Hallo,<br><br>
test """f"{df_supplier_number[i]}"r""" erstellen:<br><br>
Mit dem Text:<br>
test1 by """f"{df_supplier_number[i]}"r""".<br>
Settlement Date Range: 01. November 2020 to 31. October 2021.<br><br>
Und dem Betrag:<br>
"""f'{round(df_supplier_number[i],2)}'r""" € (wie in der angehängten Excel-Datei zu erkennen).<br><br>
test
"""
mail.Attachments.Add(os.getcwd()+ "\\" + f'{df_number[i]}'"_test.xlsx")
mail.Send()提前感谢!
发布于 2022-09-23 15:31:48
看上去你可能对r-字符串和f-字符串疯狂了。我在HTMLBODY部分的开头和删除的加法r、f和可能不需要的地方放置了一对。请尝试下面的选项,看看它是否适合您。我随机列出了一个数字列表来测试,所有的东西似乎都在我的头上工作。
for i in range(1,10):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.Subject = f'{df_supplier_number["SUPPLIER NAME"][i]}' + "_test"
mail.To = "test@mail.com"
mail.HTMLBody = rf"""
Hallo,<br><br>
test "{df_supplier_number[i]}" erstellen:<br><br>
Mit dem Text:<br>
test1 by "{df_supplier_number[i]}".<br>
Settlement Date Range: 01. November 2020 to 31. October 2021.<br><br>
Und dem Betrag:<br>
'{round(df_supplier_number[i],2)}'€ (wie in der angehängten Excel-Datei
zu erkennen).<br><br>
test
"""
mail.Attachments.Add(os.getcwd()+ "\\" + f'{df_number[i]}'"_test.xlsx")
mail.Send()https://stackoverflow.com/questions/73829734
复制相似问题