如何写入 python 中具有固定模板的文件?

how to write to a file with a fixed template in python?

我有一个固定的模板要写,它很长,

REQUEST DETAILS
RITM :: RITM1234
STASK :: TASK1234
EMAIL :: abc@abc.com
USER :: JOHN JOY

CONTENT DETAILS
TASK STATE :: OPEN
RAISED ON :: 12-JAN-2021
CHANGES :: REMOVE LOG

像这样,大概有 100 行。

我们有什么方法可以将其存储为模板或将其存储在“.toml”或类似文件之类的文件中,然后写入 python 中的值(:: 的右侧)?

使用 $ 将所有输入作为占位符并保存为 txt 文件。

from string import Template
t = Template(open('template.txt', 'r'))
t.substitute(params_dict)

示例,

>>> from string import Template
>>> t = Template('Hey, $name!')
>>> t.substitute(name=name)
'Hey, Bob!'

我使用 jinja 创建模板:

from jinja2 import FileSystemLoader, Template

# Function creating from template files.
def write_file_from_template(template_path, output_name, template_variables, output_directory):
    template_read = open(template_path).read()
    template = Template(template_read)
    rendered = template.render(template_variables)
    output_path = os.path.join(output_directory, output_name)
    output_file = open(output_path, 'w+')
    output_file.write(rendered)
    output_file.close()
    print('Created file at  %s' % output_path)
    return output_path



journal_output = write_file_from_template(
        template_path=template_path,
        output_name=output_name,
        template_variables={'file_output':file_output, 
            'step_size':step_size, 
            'time_steps':time_steps},
        output_directory=output_directory)

文件名为 file.extension.TEMPLATE:

# This is a new file :
{{ file_output }}
# The step size is :
{{ step_size }}
# The time steps are :
{{ time_steps }}

您可能需要稍微修改一下,但主要的东西都在那里。