开发者社区 问答 正文

如何对齐此文本文件?

我将值附加到文本文件中,并希望将其与顶部类别对齐,我大约有500个名称和10个类别,因此无法逐行执行。我在底部张贴了一个小例子。我也希望第一类最多只能包含23个字符。这是我到目前为止所做的:

   fp = open(filename, "w")
   fp.write("Name                 Team Pos Games G A Pts PIM SOG Hits BS \n===========================================================\n")
   for items in stats:
          fp.write(str(items[0][:20])+ "  " + str(items[1]))
          fp.write('\n')
   fp.close()

这是我猜测需要修复的部分:

   fp.write(str(items[0][:23])+ "  " + str(items[1]))

这是我得到的输出的小品:

Name                 Team
=========================
A.J. Greer  COL
Aaron Ekblad  FLA
Adam Clendening  CLS
Adam Cracknell  FA
Adam Erne  DET
Adam Gaudette  VAN
Adam Henrique  ANH
Adam Johnson  PIT
Adam Larsson  EDM
Adam Lowry  WPG
Adam McQuaid  FA
Adam Pelech  NYI
Adrian Kempe  LA
Alan Quine  CGY
Alec Martinez  LA
Aleksander Barkov  FLA

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 18:50:41 327 分享 版权
1 条回答
写回答
取消 提交回答
  • fp.write("%-21s%-4s" % (items[0],items[1]))
    

    经过分析和重印测试。

    import re
    
    TESTLINES = """A.J. Greer  COL
    Aaron Ekblad  FLA
    Adam Clendening  CLS
    Adam Cracknell  FA
    Adam Erne  DET
    Adam Gaudette  VAN
    Adam Henrique  ANH
    Adam Johnson  PIT
    Adam Larsson  EDM
    Adam Lowry  WPG
    Adam McQuaid  FA
    Adam Pelech  NYI
    Adrian Kempe  LA
    Alan Quine  CGY
    Alec Martinez  LA
    Aleksander Barkov  FLA"""
    
    print("Name                 Team")
    print("=========================")
    for line in TESTLINES.split("\n"):
       (name, team) = re.findall(r"^(.\*)\s+(\S+)$", line)[0]
       print("%-21s%-4s" % (name,team))
    

    回答来源:stackoverflow

    2020-03-23 18:50:48
    赞同 展开评论
问答分类:
问答地址: