0

重複の可能性:
Pythonで適切にフォーマットされたテキストを書く

作成したtxtファイルにヘッダーを書き込むための次のコードがあります。

if not os.path.exists('list.txt'):
    f= file('list.txt', 'w')
    f.write ("\t".join("".join (str(row)) for row in header_names.keys()))+"\n")
    f.write ("\n")

そして、これは私がテキストファイルに新しい行を追加するために使用するコードです:

f = open("list.txt","a")

f.write ("\t".join("".join (str(row)) for row in header_names.values()))+"\n")
f.write ("\n")
f.close()

テキストファイルに書き込まれる出力は、私が望むようにはなりません。

Name    some number some number2    % percentage    average
Test    2   2   100.0   0.4
TestTestTest    3   4   75.0    0.49
tes 2   3   66.67   0.33

私はこのようなものが欲しいです:

Name           some number  some number2    % percentage    average
Test           2            2               100.0           0.4
Test           2            2               100.0           0.4
TestTestTest   3            4               75.0            0.49
tes            2            3               66.67           0.33

これを達成する簡単な方法はありますか?そのようにtxtに書き込まれることは必須ではありませんが、読み取りからの出力は...である必要があります。

4

1 に答える 1

3

各列を特定の幅にフォーマットします。たとえば、次のようにします。

>>> header = ['one', 'two', 'three']
>>> print [format(el, '<30') for el in header]
['one                           ', 'two                           ', 'three                         ']
>>> print ''.join(format(el, '<30') for el in header)
one                           two                           three                         
于 2012-12-16T19:36:09.770 に答える