跳转到主要内容

强化版的打印和格式化

项目描述

PyPI Package latest release Supported versions Supported implementations Wheel packaging support Test line coverage

自从C在几乎五十年前引入了printf()和基本的格式化打印位置参数以来,不是时候升级了吗? 没错!

say通过提供更简单、更高级的设施,增强了Python的print语句/函数、format函数/方法和%字符串插值运算符。例如,它提供直接模板格式化

from say import *

x, nums, name = 12, list(range(4)), 'Fred'

say("There are {x} things.")
say("Nums has {len(nums)} items: {nums}")
say("Name: {name!r}")

产出

There are 12 things.
Nums has 4 items: [0, 1, 2, 3]
Name: 'Fred'

或者,如果您不希望立即打印字符串,而是想要字符串本身,那么fmt()函数就是我们的sprintf()版本。

>>> fmt("{name} has {x} things and {len(nums)} numbers.")
'Fred has 12 things and 4 numbers.'

打印的项目越多,格式调用越复杂,这个简单的内联规范就越有价值。

尽管将位置模板替换为内联模板的做法很棒——一个事实最终被Python 3.6的格式化字符串字面量正式接受——但say做了更多。它还以各种方式提升输出生成任务。例如

say.title('Discovered')
say("Name: {name:style=blue}", indent='+1')
say("Age:  {age:style=blue}", indent='+1')

打印一个格式良好的文本块,具有适当的标题和缩进,以及蓝色显示的变量信息。

http://content.screencast.com/users/jonathaneunice/folders/Jing/media/81bf4738-c875-4998-82ac-a91d211d000b/00000745.png

say提供

  • DRY、Pythonic的内置字符串模板,利用Python成熟的format()方法、语法和底层引擎。

  • 单一的输出机制,在Python 2或Python 3中都能以相同的方式工作。

  • 为字符串格式化提供的辅助fmt()对象。

  • 内置高级行格式化,如行编号、缩进和自动换行。您可以通过几乎不添加额外代码来显著提高输出格式。

  • 方便的方法来处理常见的格式化项,如标题、水平分隔符和垂直空白。

  • 易于实现样式化的输出,包括ANSI颜色、用户自定义样式和文本转换。

  • 易于输出到一个或多个文件,无需额外代码或复杂性。

  • 超级模板/文本聚合对象,可轻松构建、读取和写入多行文本。

今天就试试吧!查看Read the Docs上的完整文档

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

say-1.6.6.tar.gz (46.7 kB 查看散列)

上传时间

构建分布

say-1.6.6-py3-none-any.whl (19.7 kB 查看散列)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面