有没有办法在Python中的多行字符串中使用变量?

2024-03-11

所以我将其作为邮件发送脚本的一部分:

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的唯一方法是通过字符串,并且如果字符串被分成几个部分; example = ("""string""",variable,"""string2"""),以及上面的电子邮件示例,我无法使其工作。

实际上,我还有一些脚本,在多行字符串中使用变量可能很有用,但您明白了。

有什么办法可以让这个工作吗? 提前致谢!


使用.format method:

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>
"""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在Python中的多行字符串中使用变量? 的相关文章

  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 在 Codeigniter 中加密时避免使用特定字符?

    我需要通过 URL 传递一些加密值 有什么办法可以避免加密后得到的值中出现一些字符 例如斜杠 因为在codeigniter中 斜杠等字符用于分隔URL中的参数 请注意 我不希望任何建议不要在 URL 中传递加密字符串 使用PHPurlenc
  • 用于索引和搜索的 Lucene 分析器

    我有一个正在使用 Lucene 建立索引的字段 如下所示 Field name hungerState index Index TOKENIZED store Store YES public HungerState getHungerSt
  • 如何更新角度材质

    将项目中的角度材料更新到最新版本的最佳方法是什么 email protected cdn cgi l email protection I tried npm install save angular material angular cd
  • 我应该使用字符串表来提高数据库效率吗?

    假设您有一个包含单个表的数据库 例如 Name FavoriteFood Alice Pizza Mark Sushi Jack Pizza 如果有一个名为 St
  • 在 git bash 中找不到 sudo/apt-get 命令

    我在我的机器上使用 Windows 10 当前安装了 git bash 我想为我的应用程序安装 Node 和 npm 当我尝试时 apt get安装nodejs 找不到 apt get 命令 我尝试谷歌并得到 须藤安装nodejs 未找到
  • 页面重新加载时 Jquery 显示/隐藏重置

    我是 jquery 的新手 但我正在尝试使用它来创建多步骤选项卡式表单 在其中一页 我有单选按钮 将根据所选的选择显示多个字段 我发现的问题是 如果用户在选择单选按钮后刷新页面 页面将重新加载并隐藏所有 div 但它会记住所选的单选按钮选项
  • 将项目推送到 STL 容器后出现段错误

    typedef struct temp int a b char c temp c char malloc 10 temp free c temp int main temp a list
  • 插入行以用标题分隔数据组

    有人可以帮我写这个脚本吗 就目前情况而言 一旦值 文本发生更改并插入新行 当前的宏就会分离数据 但我只是无法弄清楚如何在插入行后包含标题 Sub Insert Row Dim ws As Worksheet Dim lr As Long D
  • 无法使用 VS 代码从 Node js 中的控制台读取

    我正在 VS code 中使用 Node js 的核心模块 但无法让它与 readline 模块一起工作 我在 js 文件中有以下代码 const readline require readline const rl readline cr
  • 使用布尔索引数组过滤列表

    如何在不使用 numpy 的情况下使用布尔索引数组来过滤列表 例如 gt gt gt l a b c gt gt gt b True False False gt gt gt l b 结果应该是 a 我知道 numpy 支持它 但想知道如何
  • ruby 打印 2 个字符串之间选定的文本行

    我试图在 ruby 中的两个字符串之间获取一组文本 但我似乎无法获得正确的方法或使用正确的正则表达式 text h1 all kinds of html h1 p blah blah p p i ve been working on thi
  • MVC 软件架构中验证逻辑的放置位置

    我其实已经开始学习mvc架构了 我很困惑是否将用户名注册验证逻辑放在模型中或控制器中 我有某种状态消息 可以告诉用户要注册的新用户名是否可用 我开始感到困惑 因为大多数消息来源说它应该在模型中 因为它涉及在将用户名数据放入数据库之前进行验证
  • IPC 的共享内存和线程的共享内存有什么区别?

    让我们使用 POSIX 共享内存 例如 shmget 协调进程间通信的常见调用 调用 shmget 并协调共享内存段上的通信与 Linux 在单个进程中实现共享内存和线程之间的同步有何不同 其中之一更轻吗 SHM适用于多进程中的IPC 在现
  • postgresql 中的 regexp \Q...\E 等价于什么?

    我有以下查询 SELECT field FROM myTable WHERE field Qprefix E 它不会找到类似的值prefix foo 我该如何更换 Q E 这种形式的正则表达式带有 Q E仅支持不带引号的子字符串PCRE h
  • 从 shell 脚本中提取 YAML 中的变量

    我有一个由以下内容组成的 YAML 文件 acceleration matrix 1ere row x 20 0 0 15 15 2eme row y 0 15 0 0 0 3eme row z 0 0 30 15 15 4eme row
  • NLTK 中 Text.similar() 和 ContextIndex.similar_words() 生成的单词按频率排序?

    我使用这两个函数来查找相似的单词 它们返回不同的列表 我想知道这些函数是否按最频繁关联到最不频繁关联排序 ContextIndex similar words word http nltk org modules nltk text htm
  • 使用剪辑的条件或选择性规则

    我希望你过得很好 我是 CLIPS 的初学者 我有一个包含多个节点 起始节点 输入 和结束节点 输出 的图表 我想在输入数量等于输出的情况下创建一个规则 该规则必须帮助我在几个节点之间进行选择组合 起始节点和结束节点 每个组合的最短路径 如
  • 具有深度嵌套依赖项的单元测试和依赖项注入

    假设遗留类和方法结构如下 public class Foo public void Frob int a int b if a 1 if b 1 does something else if b 2 Bar bar new Bar bar
  • 从 Sugarcrm 中的 QuickCreate 中删除必填字段

    我编写了一个函数来从联系人 QuickCreate 中删除帐户名称相关字段 但我的函数在 Firefox 中完美运行 但在 chrome 中不起作用 这是我的函数 function manageRequired reqArr disable
  • 有没有办法在Python中的多行字符串中使用变量?

    所以我将其作为邮件发送脚本的一部分 try content From Fromname