-1

我必须从文件中读取并使用字符串格式以表格的形式打印输出这是我写的一个例子

def timesplit(m,n):
    count=0
    for i in m:
        if i>=n:
            count+=1
    return count
f=open("/home/chandra.pradyumna/logs.properties")
line=f.readlines()
if line[1][-2]=='1':
    k=line[3][line[3].find("=")+1:-1].split(",")
    l=line[4][line[4].find("=")+1:-1].split(",")
print k,l
print "%9s|"*len(k)+"%9s"*len(l)%timesplit(k[0],Exec),timesplit(k[1],Exec),timesplit(k[2],Exec),timesplit(k[3],Exec),timesplit(l[0],Update),timesplit(l[1],Update),timesplit(l[2],Update),timesplit(l[3],Update)

Exec 和 Update 是包含范围 (0,50) 中的浮点数的列表

我正在阅读的文件如下

#Enable timesplts=1 else=0
timesplits = 1
#The specific time splits
Exectimespilt=10,15,20,30
Updatetimesplit=10,15,20,30

输出应为表格格式

--------------------------------------------------------------------------
 hour  |exec(>10)|exec(>15)|exec(>20)|exec(>30)|update(>10)|update(>15)|update(>20)|update(>30)
-------------------------------------------------------------------------------
hour-1 |3        |5        |7        |4       |5           |2          |  3        |5        
--------------------------------------------------------------------------------
hour-2 |2         |3        |4        |5       |1           |2          |5     

使用 timesplit() 将数据填充到表中。

那么我如何根据 k 和 l 中的元素数量在此处动态执行字符串格式化。这是一个示例,除了这两个之外,该表还有许多其他组件提前谢谢

4

1 回答 1

1

我会分别格式化每个条目,然后将它们连接在一起:

print ",".join("%9s" % timesplit(i, ...) for i in k), "|", ",".join("%9s" % timesplit(i, ...) for i in l)

如果这就是你的意思。

请注意,您的函数timesplits()在您调用timesplit().

我也不知道您的第二个参数(Execresp. Update)在这种情况下应该是什么以及它如何与n函数中的参数匹配。

于 2012-12-12T09:49:15.550 回答