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