动态字符串格式

时间:2012-12-12 09:36:14

标签: python string-formatting

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

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中的元素的数量。这是一个示例,除了这两个之外,表还有许多其他组件 提前致谢

1 个答案:

答案 0 :(得分:1)

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

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

如果这是你的意思。

请注意,当您致电timesplits()时,您的功能名为timesplit()

我也不知道你的第二个参数(Exec resp。Update)应该在这个上下文中是什么以及它如何与函数中的参数n匹配。 / p>

相关问题