在Python代码中使用文件中的字符串替换长字符串(保留占位符)

2024-09-26 22:51:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须为一些文本文件制作一个生成器,这些文件必须包含一个长字符串,每个文件之间存在许多差异。我使用一个默认的字符串,其中包含占位符。我想做的是将文本放入一个文件中并保留其功能(有占位符)。有什么建议吗?在

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多行,因此处理一个只包含字符串的单独文件会更容易。在


Tags: 文件字符串文本self功能defaultstring差异
2条回答
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))

如果我正确地理解了您的问题,您可以按原样将默认的字符串写入文件。当您想使用它来进行任何格式化时,您将读取该文件的第一行并对该字符串调用format,就像在您的示例中一样。在

您可以用位置占位符(例如{0},{1})替换默认字符串中的命名占位符,也可以通过查找“{”和“}”之间的字符来解析字符串中的名称,并构建一个**kwargs字典,将名称作为键和值传递到.format()。在

相关问题 更多 >

    热门问题