2017-04-04 5 views
1

forループを使っていくつかの変数を出力しています。それらは、以下の関数を使用してファイルに書き込まれています。Python - 表形式のファイルに書き込む

def writeToServiceFile(file,svc,nodes,idd,i): 
    my_file=open(file,"a") 
    my_file.write(str(id)+"\t"+nodes+"\t"+svc+"\t"+str(i)+"\n") 
    my_file.close() 

私が手出力は次のようになります。

1000078201 172.29.219.105 kubelet None 
1000078202 172.29.219.104 kubelet None 
1000078204 172.29.219.103 kubelet None 
1000078209 172.29.219.106 mongod SECONDARY 
1000078209 172.29.219.106 elasticsearch Secondary 
1000078211 172.29.219.107 mongod SECONDARY 
1000078211 172.29.219.107 elasticsearch Secondary 
1000078206 172.29.219.109 postgres None 
1000078205 172.29.219.16 redis-server slave 
1000078837 172.29.219.15 redis-server master 

私が望む出力が自然の中でより多くの表です。

1000078201 172.29.219.105 kubelet   None 
1000078202 172.29.219.104 kubelet   None 
1000078204 172.29.219.103 kubelet   None 
1000078209 172.29.219.106 mongod   SECONDARY 
1000078209 172.29.219.106 elasticsearch Secondary 
1000078211 172.29.219.107 mongod   SECONDARY 
1000078211 172.29.219.107 elasticsearch Secondary 
1000078206 172.29.219.109 postgres  None 
1000078205 172.29.219.16 redis-server slave 
1000078837 172.29.219.15 redis-server master 

希望する出力を得るためにどのライブラリを調べることができますか?

+0

Pythonのビルトイン[print function](https://docs.python.org/2/library/string.html#format-specification-mini-language)のライブラリは必要ありません。 – davedwards

+0

値の最大値を知っていれば、format()を使うことができます。 –

答えて

1

外部ライブラリは必要ありません。Pythonの組み込みのformat()関数を使用してください。

my_file.write('{0:10} {1:14} {2:13} {3}\n'.format(str(id), nodes, svc, str(i))) 

パラメータとその他のカスタマイズについては、Format Specification Mini-Languageを参照してください。

関連する問題