Python从文件中读取字符串,保留要打印的变量

时间:2017-10-31 14:13:04

标签: python string list file-io

我正在制作一个Python脚本,它将从列表中随机选择一个响应。

要填写此列表,我想从文件中读取字符串,字符串将如下所示:

"This number is " + str(num) + ", this is good"
"Oh no the number is " + str(num) +", this is good

显然这些是从文件中读取的字符串,所以如果我打印其中一个,它们会在你看到它们时出现,并且不会有" num"取代。无论如何都要从文件中读取这些字符串,同时保持替换变量(如原始格式)的能力,就像我的代码所做的那样如何工作

list.append("This number is " + str(num) + ", this is good")

我想从文件中读取的原因是因为我将有许多不同的字符串,它们可能会改变,所以我宁愿不将它们硬编码到程序中(请记住示例字符串是非常基本的)

由于

2 个答案:

答案 0 :(得分:1)

在文件中使用某些内容表示需要替换,然后进行替换。

例如,如果您需要输入num的值,则您的文本可以使用需要替换的{{num}}。然后使用正则表达式查找这些子字符串,并用所需的值替换它们。

答案 1 :(得分:1)

您可以使用format specification mini-language,然后在显示字符串之前调用.format

strings.txt:

This number is {num} this is good
Oh no the number is {num} this is good

main.py:

import random

with open("strings.txt") as file:
    possible_strings = file.read().split("\n")

number = 23

s = random.choice(possible_strings)
print(s.format(num=number))

可能的输出:

This number is 23 this is good