Как я могу выровнять этот текстовый файл? - PullRequest
0 голосов
/ 19 марта 2020

Я добавил значения в текстовый файл и хочу выровнять его с категорией сверху, у меня есть около 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

1 Ответ

0 голосов
/ 19 марта 2020
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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...