我必须为一些必须包含长字符串的文本文件生成一个生成器,该字符串从一个文件到另一个文件有很多不同。我通过在其中包含占位符的DEFAULT_STRING来实现此目的。我想要做的是将文本放在文件中并保留功能(使用占位符)。有什么建议吗?
DEFAULT_STRING = """A very long {ph1} string with multiple {ph2} ......
that keeps on going {ph3} and I don't like this big string
inside my code""".format(ph1 = self._first, ph2 = self._second, ph3 = self._third)
实际的字符串是100多行,因此更容易处理仅包含字符串的单独文件。
答案 0 :(得分:1)
如果我正确理解您的问题,您可以将DEFAULT_STRING写入文件中。当您想要使用它来进行任何格式化时,您将读取该文件的第一行并在该字符串上调用格式,就像在您的示例中一样。
您可以将DEFAULT_STRING中的命名占位符替换为位置占位符(例如{0},{1}),也可以通过查找" {"之间的字符来解析字符串中的名称。和"}"并构建一个** kwargs字典,使用名称作为键和值来传递到.format()中。
答案 1 :(得分:0)
values = dict(ph1 = self._first, ph2 = self._second, ph3 = self._third)
with open('long_string.txt') as infile:
with open('out.txt', 'w') as outfile:
outfile.write(infile.read().format(**values))