Python 3.x Python3打印功能用于对齐正确对齐的列
我试图将一些原始输出对齐到一个用python打印函数格式化的标题中 这是来自C程序函数的格式:Python 3.x Python3打印功能用于对齐正确对齐的列,python-3.x,Python 3.x,我试图将一些原始输出对齐到一个用python打印函数格式化的标题中 这是来自C程序函数的格式: QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP debug 50 Open:Active - 10 - - 0 0 0 0 perf13 45 Open:Active -
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
debug 50 Open:Active - 10 - - 0 0 0 0
perf13 45 Open:Active - - - 1 0 0 0 0
vntr 45 Open:Active - - - - 0 0 0 0
下面是我试图用python风格打印输出的内容,但问题是列数据没有像上面用C程序那样正确地拟合,例如状态
列
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SSUSP
normal 150 - 8 - - - 1 - 0 0
lnx64 150 - 2147 - - - 0 - 0 0
interactive 50 Open:Active100 50 21 34 0 - 0 0
下面是我正在尝试的代码,请建议改进代码
$ cat default.py
def display(data):
print("\n")
print('{:<14}{:<10}{:<12}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<5}{:<5}'.format("QUEUE_NAME","PRIO","STATUS","MAX","JL/U","JL/P","JL/H","NJOBS","PEND","RUN","SSUSP"))
keys = ['queue','priority','status','maxJob','jlu','jlp','jlh','numJobs','pend','numRUN','numSSUP']
for doc in data['NBS_BATCH_QUEUES']:
element_lst = []
for key in keys:
if key in doc:
key = doc[key]
else:
key = '-'
element_lst.append(str(key))
print('{0[0]:14s}{0[1]:10s}{0[2]:12s}{0[3]:6s}{0[4]:6s}{0[5]:6s}{0[6]:6s}{0[7]:6s}{0[8]:6s}{0[9]:5s}{0[10]:5s}'.format(element_lst))
$cat default.py
def显示(数据):
打印(“\n”)
打印(“{:我刚刚正确地对齐了打印语句,现在一切看起来都很好,Thnx
print('{:>14}{:>8}{:>13}{:>8}{:>6}{:>6}{:>6}{:>6}{:>6}{:>8}{:>8}'.format("QUEUE_NAME","PRIO","STATUS","MAX","JL/U","JL/P","JL/H","NJOBS","PEND","RUN","SSUSP"))
print('{0[0]:>14}{0[1]:>8}{0[2]:>13}{0[3]:>8}{0[4]:>6}{0[5]:>6}{0[6]:>6}{0[7]:>6}{0[8]:>6}{0[9]:>8}{0[10]:>8}'.format(element_lst))
我得到提示,这是必需的“向右对齐”
。