2016-09-22 9 views
0

(悲しいことに悲しい) Imはcmdで働いています。 私はその事をやりたい:単語間に平等なスペースを作る方法 - python

file_name    DIR 
file_name_3   DIR 
file_name_545   DIR 
file_name_LlK   DIR 

の代わりにそのことをやって:

file_name   DIR 
file_name_3   DIR 
file_name_545   DIR 
file_name_LlK   DIR 

私はループでこれを行うためにtryied:

print data.ljust((20 - len(data) + 20)) if len(data) <= 20 else (data[0:17] + '...').ljust(20)), 'DIR' 

しかし、そのことがbecase動作していません他の文字が大きい場合は、それが不可能になります。

+1

あなたのコードは見ていませんでしたが、文字サイズが違う場合は端末のモノスペースフォントを使用する必要があります –

+0

'print data、(20-len(data))* ''、 'DIR '? –

+0

@barakマノスそれは働いた!何をしたの? –

答えて

0

フォーマット文字列を使用します。

"{:20}{}".format(data,"DIR") 

ljkust()

data.ljust(20) + "DIR" 

あなたのデータで最も広いポイントを見つけ、ljust

+0

希望するデータワードには、依然として特定の文字の実際の幅のプロレンが存在します。 –

+0

これは、@ barak manosの解決策と同等でなければなりません。すでに言及しているjeffのようなモノスペースフォントは使用しないと思います。 – nauer

+0

私は今あなたの答えとその仕事をするためにトライしました。なぜそれは 'ljust'からどうしてですか? –

0

ファーストを理解するためにhelp(str.ljust)を参照してくださいと同じ。私はあなたにタプルのリストがあると仮定します。

col_width = max(tup[0] for tup in list_of_tuples) 
for tup in list_of_tuples: 
    print(tup[0].ljust(col_width), tup[1].ljust(colwidth)) 

ljustしたい機能ですが、私はあなたが望むものではない異なる幅、異なる行に列を設定していると思います。

関連する問題