Python制表:单个表中的多个列表

时间:2017-01-09 17:43:33

标签: python python-2.7

我正在尝试使用tabulate包打印一些表。例如,我目前有一个脚本可以接收模型运行输出日志文件并打印一些时间:

(437) $ ./GCM_Times_Tables.py -f 1day.works4.out  -t 1day --brief
GridComp          1day
-------------  -------
SUPERDYNAMICS   87.798
PHYSICS        246.729
AGCM           326.930
OGCM             1.879
GCS            330.248
HIST             9.229
EXTDATA         60.872

(438) $ ./GCM_Times_Tables.py -f 2day.out -t 2day --brief
GridComp          2day
-------------  -------
SUPERDYNAMICS  171.870
PHYSICS        484.011
AGCM           635.895
OGCM             2.454
GCS            640.896
HIST            17.739
EXTDATA        103.484

我的脚本遍历文件,最终得到OrderedDict:

OrderedDict([('SUPERDYNAMICS', 87.798), ('PHYSICS', 246.729), ('AGCM', 326.93), ('OGCM', 1.879), ('GCS', 330.248), ('HIST', 9.229), ('EXTDATA', 60.872)])

然后我解析tabulate

 print tabulate(myTimes.items(),headers=['GridComp',tag],tablefmt=tableFormat,floatfmt=".3f")

我现在要做的是扩展我的脚本以便我可以传入多个文件(我知道如何在argparse中执行此操作)然后得到类似的内容:

GridComp          1day     2day
-------------  -------  -------
SUPERDYNAMICS   87.798  171.870 
PHYSICS        246.729  484.011
AGCM           326.930  635.895
OGCM             1.879    2.454
GCS            330.248  640.896
HIST             9.229   17.739
EXTDATA         60.872  103.484

然后我可以使用“wikitable”格式运行并粘贴到Wiki页面。

我可以轻松传入多个文件,我可以轻松扩展我的脚本,为每个文件构建OrderedDicts。实际上,我可以制作OrderedDicts的OrderedDict,其中“大”字典上的键是文件名。

但是,我无法弄清楚我需要做些什么才能得到制表结果。看看我见过的表格示例,我想出了combinedDict.items()导致的内容:

[('SUPERDYNAMICS',87.798,171.870),('PHYSICS',246.729,484.011)...]

就足够了。我似乎无法做的是拿这两个OrderedDicts并以这种方式“合并”它们。有没有办法做到这一点?或者可以构建一个列表列表:

[['SUPERDYNAMICS',87.798,171.870],['PHYSICS',246.729,484.011]...]

0 个答案:

没有答案