我只想要固定宽度的文本列,但字符串都是向右填充的,而不是向左填充!!?
sys.stdout.write("%6s %50s %25s\n" % (code, name, industry))产生
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy但是我们想要
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy发布于 2012-10-02 12:08:42
您可以在大小要求前面加上-以左对齐:
sys.stdout.write("%-6s %-50s %-25s\n" % (code, name, industry))发布于 2012-10-02 12:24:50
此版本使用str.format方法。
Python2.7和更新的
sys.stdout.write("{:<7}{:<51}{:<25}\n".format(code, name, industry))Python2.6版本
sys.stdout.write("{0:<7}{1:<51}{2:<25}\n".format(code, name, industry))更新
以前,文档中有一条关于将来从语言中删除%运算符的声明。这句话已经removed from the docs了。
发布于 2012-10-02 12:05:09
sys.stdout.write("%-6s %-50s %-25s\n" % (code, name, industry))顺便说一句,您可以使用*-s使宽度可变
>>> d = "%-*s%-*s"%(25,"apple",30,"something")
>>> d
'apple something 'https://stackoverflow.com/questions/12684368
复制相似问题