如何写入 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 }}
您可能需要稍微修改一下,但主要的东西都在那里。
我有一个固定的模板要写,它很长,
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 }}
您可能需要稍微修改一下,但主要的东西都在那里。