您希望如何格式化控制台脚本的输出?我指的是在应用程序运行期间产生的输出(log,stdout)。在
BG:我有一个python脚本,它接收数据,处理它,更新数据库中的一些相关数据并输出进度。我可以用多种方式设置输出样式:
************ Starting programm X ************
Fetching 450 lands... Done
540 local lands found
syncronizing [-------- ] 10%
Done
大写输出还是所有字母都是小写?是否对输出应用缩进?视觉上的糖,比如破折号或散列呢?像wget中的进度条?在
我知道这是一种设计,但在Web上我们有一些基本规则,我们有可用性,而且在控制台输出艺术方面没有规则。Jacob Nilsen怎么说控制台脚本的输出?在
即使在控制台脚本中,可用性也非常重要。特别是对于任何长时间运行的流程,无论是图形化的还是在终端中,显示任务进度的一些指示是更好的可用性。我建议您看看Nielsen's heuristics 许多原则都直接适用于控制台输出。在控制台中讨论以下三种启发式方法可能特别有用:
对于标准和一致性,请遵循现有流行命令的惯例。两个好的检查方法是wget和{a3}。它们都有非常相似的进度条:
wget
pv
^{pr2}$他们两个看起来一般都一样。它们还坚持最小的设计,在一行中,它们以文本和条形形式表示完成百分比、速度、完成的字节数以及预计到达时间或经过的时间。在
在合理的时间内更新。我倾向于每隔0.1秒更新一次控制台中的状态。为了让界面有反应,你需要它在这个范围内。似乎每2秒更新一次。但是命令watch的默认值是2s,这感觉太慢了。我通常以
watch -n 0.1 command
的形式运行该命令,以获得0.1s的更新间隔。在其中一条评论指出,输出应该是可解析和可管道化的。如果可能的话,这是一个非常好的东西。我特别喜欢wget处理这个问题的方式。如果您在终端中运行wget,它将使用条进度指示器,但是如果您通过管道连接到一个文件或另一个程序,它将使用点进度指示器。它会自动检测您是否有tty命令,或者正在自动管道化命令,并选择最合适的格式。您可以在它的手册页上的progress参数文档下阅读这方面的内容。从本质上讲,它有一个更易于人类阅读的输出,另一个更易于机器读取和日志友好的输出。在
一些相关/有用的链接:
相关问题 更多 >
编程相关推荐