2016-08-27 8 views
7

私は非常に初歩的な "アドレス帳"プログラムをPythonで作成しています。私は、次の例のようになります。その内容は、CSVファイルから連絡先データをつかんでいます:列に並んですべてのもの、すなわち、私はそれはきれいで読みやすく見えるように出力をフォーマットしようとしていますPythonでCSVファイルの出力をフォーマットする

Name,Phone,Company,Email 
Elon Musk,454-6723,SpaceX,[email protected] 
Larry Page,853-0653,Google,[email protected] 
Tim Cook,133-0419,Apple,[email protected] 
Steve Ballmer,456-7893,Developers!,[email protected] 

とこのような列、次のように

Name:  Phone:  Company:  Email:   
Elon Musk 454-6723  SpaceX   [email protected] 

私の現在のコードは次のとおりです。自然に起因するフォーマットの不足のために、まだ非常に不潔に見えた、これを生産

f = open("contactlist.csv") 
csv_f = csv.reader(f) 
for row in csv_f: 
    print(row) 

。私は初心者です、私はこのすべてはかなり混乱見つけるとクリーンな出力を生成する方法について

['Name', 'Phone', 'Company', 'Email'] 
['Elon Musk', '454-6723', 'SpaceX', '[email protected]'] 
['Larry Page', '853-0653', 'Google', '[email protected]'] 
['Tim Cook', '133-0419', 'Apple', '[email protected]'] 
['Steve Ballmer', '456-7893', 'Developers!', '[email protected]'] 

任意のヒントを大幅にいただければ幸いです。事前に多くの感謝。

答えて

6

formatを使用すると、出力を左揃えにすることができます。例えば、

f = open("contactlist.csv") 
csv_f = csv.reader(f) 
for row in csv_f: 
    print('{:<15} {:<15} {:<20} {:<25}'.format(*row)) 

出力:

Name    Phone   Company    Email      
Elon Musk  454-6723   SpaceX    [email protected]   
Larry Page  853-0653   Google    [email protected]   
Tim Cook   133-0419   Apple    [email protected]   
Steve Ballmer 456-7893   Developers!   [email protected] 

あなたはformat hereについての詳細を読むことができます。 <シンボルはテキストを左揃えにし、数字は文字列の幅を指定します。各{}にはコロンの前に位置引数を含めることができます: - 省略された場合、文字列はアンパックリストの引数の順に表示されますrow

+1

情報とリンクに感謝します。 – shaneybrainy13

+0

@zarak私はあなたのソリューションを試しましたが、私はIndexErrorを得ています。 – Vash

+0

こんにちは@Vash、ここに示した例でコードを実行していますか? – zarak

関連する問題