天天看点

Python使用string.Formatter()制作打印模板

工作时,会希望使用统一的打印模板来处理散落在各处的打印需求,尤其是在记录日志时,如果直接使用

print

函数,那么代码会显得尤其繁琐。这时,比较好的做法是编写一个函数来进行封装。而Python的

string.Formatter

类提供了字符串格式化功能。制作字符串模板后,通过调用

format(value[, format_spec])

方法,就可以依照模板生成一个格式化的字符串,而这个字符串再结合

print

等函数,可以在很多地方得到应用。

下面看一个示例:

import datetime

# 设计字符串模板
template = ('\nDate: "{}", Temperature: {:.1f}, Condition: "{}"')

# 根据字符串模板生成字符串
log = template.format(datetime.datetime.now(), 23.17, 'good')

# 打印格式化后的字符串
print(log)
           

简单的三个步骤完成任务:

  1. 根据实际需求设计一个字符串模板,也就是代码中的

    template

    ,其中,

    {}

    是占位符,在占位符里可以引入各种格式化选项,如

    1f

    等等。
  2. 在系统运行过程中,将实时数据按模板指定的格式组合成新的字符串。
  3. 应用该字符串,例如使用

    print

    函数进行打印。

通过上述简单的过程,便可以优雅地完成格式化字符串的功能,并和其应用过程(例如

print

)进行解耦。