Python制表:将多个列表放入单个选项卡

2024-06-25 06:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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

我的脚本遍历文件,最后得到一个有序的dict:

^{pr2}$

然后我通过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,其中“大”字典上的键是文件名。在

但是,我想不出我需要做些什么才能得到表格来喜欢结果。在我看到的表格示例中,我认为combinedDict.items()会导致:

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

就足够了。我似乎做不到的是把这两个有序的图片用这种方式“合并”。有办法吗?或者建立一个列表:

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

Tags: 文件py脚本tableshisttabulategcmtimes