我正在使用 click 模块创建 Unix 终端的 CLI 应用程序。因此,我看到两种可以显示数据的方式:print(data)
和 click.echo(data)
。
它们之间有什么区别,我应该使用哪个?
我正在使用 click 模块创建 Unix 终端的 CLI 应用程序。因此,我看到两种可以显示数据的方式:print(data)
和 click.echo(data)
。
它们之间有什么区别,我应该使用哪个?
click.echo()
,因为:
Click试图以相同的方式支持Python 2和Python 3,并在环境配置错误时具有很强的健壮性。即使一切都完全崩溃,Click也至少要基本可用。
这意味着echo()函数会在终端配置错误时应用一些纠错,而不是死亡并出现UnicodeError。
另外,从Click 2.0开始,echo函数还具有良好的ANSI颜色支持。如果输出流是文件并且支持colorama,则它将自动剥离ANSI代码,在Windows上也支持ANSI颜色。有关详细信息,请参见ANSI颜色。
如果您不需要此功能,则还可以使用print()结构/函数。
click.echo
的源代码非常清晰。click._compat
的util函数,这些函数类似于six
,以确保库在python2和3都获得支持。