有什么方法可以在 Python 中的多行字符串中使用变量吗?
Is there any way to use variables in multiline string in Python?
所以我将其作为邮件发送脚本的一部分:
try:
content = ("""From: Fromname <fromemail>
To: Toname <toemail>
MIME-Version: 1.0
Content-type: text/html
Subject: test
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
""")
...
mail.sendmail('from', 'to', content)
我想每次都使用不同的主题(假设它是函数参数)。
我知道有几种方法可以做到这一点。
但是,我还在其他一些脚本中使用 ProbLog(一种基于 Prolog 语法的概率编程语言)。
据我所知,在 Python 中使用 ProbLog 的唯一方法是通过字符串,如果字符串被分成几部分;示例 = ("""string""", variable, """string2"""),以及上面的电子邮件示例,我无法让它工作。
实际上我还有一些脚本,在这些脚本中,在多行字符串中使用变量可能会有用,但你明白了。
有什么方法可以实现吗?
提前致谢!
使用.format
方法:
content = """From: Fromname <fromemail>
To: {toname} <{toemail}>
MIME-Version: 1.0
Content-type: text/html
Subject: {subject}
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""
mail.sendmail('from', 'to', content.format(toname="Peter", toemail="p@tr", subject="Hi"))
一旦最后一行变得太长,您可以创建一个字典并解压它:
peter_mail = {
"toname": "Peter",
"toemail": "p@tr",
"subject": "Hi",
}
mail.sendmail('from', 'to', content.format(**peter_mail))
从 Python 3.6 开始,您还可以使用多行 f 字符串:
toname = "Peter"
toemail = "p@tr"
subject = "Hi"
content = f"""From: Fromname <fromemail>
To: {toname} <{toemail}>
MIME-Version: 1.0
Content-type: text/html
Subject: {subject}
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""
所以我将其作为邮件发送脚本的一部分:
try:
content = ("""From: Fromname <fromemail>
To: Toname <toemail>
MIME-Version: 1.0
Content-type: text/html
Subject: test
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
""")
...
mail.sendmail('from', 'to', content)
我想每次都使用不同的主题(假设它是函数参数)。
我知道有几种方法可以做到这一点。
但是,我还在其他一些脚本中使用 ProbLog(一种基于 Prolog 语法的概率编程语言)。 据我所知,在 Python 中使用 ProbLog 的唯一方法是通过字符串,如果字符串被分成几部分;示例 = ("""string""", variable, """string2"""),以及上面的电子邮件示例,我无法让它工作。
实际上我还有一些脚本,在这些脚本中,在多行字符串中使用变量可能会有用,但你明白了。
有什么方法可以实现吗? 提前致谢!
使用.format
方法:
content = """From: Fromname <fromemail>
To: {toname} <{toemail}>
MIME-Version: 1.0
Content-type: text/html
Subject: {subject}
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""
mail.sendmail('from', 'to', content.format(toname="Peter", toemail="p@tr", subject="Hi"))
一旦最后一行变得太长,您可以创建一个字典并解压它:
peter_mail = {
"toname": "Peter",
"toemail": "p@tr",
"subject": "Hi",
}
mail.sendmail('from', 'to', content.format(**peter_mail))
从 Python 3.6 开始,您还可以使用多行 f 字符串:
toname = "Peter"
toemail = "p@tr"
subject = "Hi"
content = f"""From: Fromname <fromemail>
To: {toname} <{toemail}>
MIME-Version: 1.0
Content-type: text/html
Subject: {subject}
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""