有没有办法在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中的多行字符串中使用变量? 的相关文章

  • python类型中的__flags__有什么用

    我最近阅读了pickle源代码 以下代码在copy reg让我很困惑 HEAPTYPE 1 lt lt 9 def reduce ex self proto assert proto lt 2 for base in self class
  • matplotlib 的 pcolor 中的白线

    在某些 pdf 查看器 例如 OSX 上的 Preview 中 使用以下命令绘制的图matplotlib的 pcolor 有白线 见下图 我怎样才能摆脱它们 源代码非常简单 选择任何数据x y z import matplotlib mat
  • Pyjnius导入jar文件

    Pyjnius 允许您为 java 类创建 python 包装器 例如 Hardware autoclass org myapp Hardware 有没有办法像这样导入现有的 jar 文件 语法是什么样的 您可以将 jar 添加到 CLAS
  • 将字符串转换为整数数组 String at = "1 2 3 4 5" 转换为 ar=[1,2,3,4,5]

    我正在读取一个字符串 作为一整行数字 用空格分隔 即1 2 3 4 5 我想将它们转换为整数数组 以便我可以操作它们 但这段代码不起作用 它说不兼容的类型 String str br readLine int array new int 4
  • 使用 OpenCV 进行图像模糊检测

    我正在研究图像的模糊检测 我已经用过拉普拉斯方法的方差在 OpenCV 中 img cv2 imread imgPath gray cv2 cvtColor img cv2 COLOR BGR2GRAY value cv2 Laplacia
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • 确保特定列位于数据框中最后(或第一个)的最快方法是什么

    given df df pd DataFrame np arange 8 reshape 2 4 columns list abcd 假设我需要专栏 b 到最后 我可以做 df a c d b 但是确保给定列位于末尾的最有效方法是什么 这就
  • 如何在Python中重命名virtualenv?

    我拼错了名字virtualenv使用以下方法初始化它 virtualenv vnev 我实际上打算创建一个名为的环境venv 尝试重命名后vnev文件夹到venv 我发现这并没有提供太多帮助 激活环境的名称仍然重命名旧的vnev mv vn
  • PHP中如何判断字母是大写还是小写?

    我有 UTF 8 格式的文本 也带有变音符号 并且想检查该文本的第一个字母是大写还是小写 这个怎么做 function starts with upper str chr mb substr str 0 1 UTF 8 return mb
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • Odoo:如何覆盖原始功能

    在 Odoo 中 每次打开产品表单时都会计算产品的数量 这发生在模型中product product gt function product available 该函数返回一个名为 res 的字典 Example res 8 qty ava
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • Python:使用Excel CSV文件仅读取某些列和行

    虽然我可以读取 csv 文件而不是读取整个文件 但如何仅打印某些行和列 想象一下这是 Excel A B C D E State Heart Disease Rate Stroke Death Rate HIV Diagnosis Rate
  • 从 Cython 代码生成 SIMD 指令

    我需要概述在高性能数字代码中使用 Cython 可以获得的性能 我感兴趣的事情之一是找出优化的 C 编译器是否可以对 Cython 生成的代码进行矢量化 所以我决定写下面的小例子 import numpy as np cimport num
  • 无法从源 pylance 解析导入烧瓶

    我正在学习 Python 课程的一部分是使用 Flask 设置网络服务器 我按照 Flask 安装文档执行了步骤 由于某种原因 flask 模块带有下划线 如下所示 当我将鼠标悬停时 我会得到如下附加信息 无法从源 pylance 解析导入
  • 编写 CherryPy 装饰器以进行授权

    我有一个cherrypy应用程序 在某些视图上我想开始只允许某些用户查看它们 并将其他任何人发送到需要授权的页面 有没有办法使用自定义装饰器来做到这一点 我认为这将是最优雅的选择 这是我想做的一个基本示例 class MyApp autho
  • 在 python 中,VSCode 调试器不会单步执行外部代码。无法弄清楚如何编辑 launch.json 中的“justMyCode”

    我一直在提到https code visualstudio com docs python debugging justmycode https code visualstudio com docs python debugging jus
  • VBA按空格分割字符串

    我想要一个 Excel 函数 我可以调用该函数并将单元格传递到其中 输入 Firstname Lastname email protected cdn cgi l email protection Firstname midname Las
  • 写入文件的正确方法?

    我想知道这样做是否有什么区别 var1 open filename w write Hello world 并做 var1 open filename w var1 write Hello world var1 close 我发现没有必要
  • Pandas 将时间序列数据重新采样为 15 分钟和 45 分钟 - 使用多索引或列

    我有一些时间序列数据作为 Pandas 数据框 它从每小时过去 15 分钟和过去 45 分钟 时间间隔为 30 分钟 的观察开始 然后将频率更改为每分钟 我想对数据进行重新采样 以便整个数据帧的频率为每 30 分钟一次 15 点和 45 点

随机推荐

  • 在 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