对齐,间距在python 3中

时间:2014-03-23 04:52:19

标签: python python-3.x string-formatting spacing

如何对齐此代码中的所有列?是正确的还是......?

import urllib.request
from re import findall

def determinarLlegadas(numero):
    llegadas = urllib.request.urlopen("http://...")
    llegadas = str (llegadas.read())
    llegadas = findall ('<font color="Black" size="3">(.+?)</font>',llegadas)
    print ('\t','VUELO ','\t','AEROLINEA','\t','PROCEDENCIA','\t','FECHA ','\t',' HORA ','\t','ESTADO','\t','PUERTA')
    a = 0
    numero = numero * 7
    while numero > a:
        print ('\t',llegadas[a+0],'\t',llegadas[a+1],'\t',llegadas[a+3],'\t',llegadas[a+3],'\t',llegadas[a+4],'\t',llegadas[a+5],'\t',llegadas[a+6])
        a = a + 7

1 个答案:

答案 0 :(得分:2)

请勿使用标签,使用string formatting

...
print("{:12}{:12}{:12}{:12}{:12}{:12}{:12}".format(
      "VUELO","AEROLINEA","PROCEDENCIA","FECHA","HORA","ESTADO","PUERTA"))
print("{:12}{:12}{:12}{:12}{:12}{:12}{:12}".format(*llegadas))

将每个列的12更改为最大字段大小,然后您就变为金色。

事实上,虽然它的可读性较差:

COLSIZE = 12
# Maybe COLSIZE = max(map(len,llegadas))+1
NUMCOLS = 7
formatstring = "{}{}{}".format("{:",COLSIZE,"}")*NUMCOLS
# {:COLSIZE}*NUMCOLS

headers = ["VUELO","AEROLINEA","PROCEDENCIA","FECHA","HORA","ESTADO","PUERTA"]

print(formatstring.format(*headers))
print(formatstring.format(*llegadas))