python - 使用制表符格式化空白

标签 python python-3.x string-formatting

这里有一个奇怪的问题。我正在使用一些预定义的输出,这些输出以制表符分隔,但制表符大小不同。例如,数据如下所示:

a:    b,c
qes:  d,e

除了用\t 字符代替冒号和字符之间的空格之外。我试图使用 python format 命令重现这种类型的输出以处理遗留代码,但似乎只有在使用空格而不是\t 字符作为填充时才能使其工作。这是我的格式命令的草图:

'{:>8}:{:>5},{:}'.format(foo, bar, do)

我再次尝试将\t 设置为填充字符,但它将其视为一个字符,并且仅放入与空格相同数量的制表符 - 这没有帮助。

最佳答案

所以,我认为这有两个部分:选项卡如何在目标系统中显示,以及如何在格式字符串中获得正确的空间量。

正如 Bardi Harborow 所评论的,显示制表符的常见约定是“每个制表符 8 个空格”,这意味着一个制表符可以替换最多 8 个字符的文本。然而,这通常可以根据每个程序进行配置。如果我只在格式字符串中使用单个制表符,在具有 8 个空格制表符的系统上,例如从 Windows 命令行运行脚本,它看起来像这样:

s:      b,c
longer: b,c

但使用 4 个空格制表符时,它看起来像这样:

s:  b,c
longer: b,c

因此,对于您的问题,最简单的答案是,假设您的 foo 字符都不超过一个制表符,您可以只使用格式字符串:'{}:\t{},{}'

您是否有关于运行脚本的系统的更多信息?这可能有助于将对话引向更有用的方向。

我知道您这样做是出于遗留原因,但顺便说一句,整个“选项卡可以在不同的计算机上以不同的方式显示”是人们使用空间对齐格式的原因之一。

关于python - 使用制表符格式化空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337290/

相关文章:

python - 从监听套接字/HTTPServer 获取传入 URL

python - 打印不带前导零的浮点值

Python-更改列表列表中的元素

python - 如何对 Python 对象进行排序

python - 尝试从 C 调用 Python

python-3.x - Pandas Dataframe 使用合并过滤结果。编码解码问题

python - 如何将 float 格式化为整数?

python - 在 string.format() 中使用 JSON 对象?

dict() 或函数参数中的 Python 多行注释

python - 如何在一张图中显示多张图片?