-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は、range(0,50)のfloatを含むリストです。

私が読んでいるファイルは次のとおりです

#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の要素の数に応じて、ここで文字列の書式設定を動的に実行するにはどうすればよいですか。これはサンプルであり、テーブルにはこれら2つの要素以外にも多くのコンポーネントがあります。

4

1 に答える 1

1

すべてのエントリを個別にフォーマットしてから、それらを結合します。

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

これがあなたの言いたいことなら。

timesplits()を呼び出すときに関数に名前が付けられることに注意してくださいtimesplit()

また、このコンテキストで2番目の引数(または)がどのように想定されているのか、関数のパラメーターとどのように一致するのかもわかりExecませんUpdaten

于 2012-12-12T09:49:15.550 に答える