I am creating a very rudimentary "Address Book" program in Python. I am grabbing contact data from a CSV file, the contents of which looks like the following example:
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]
I am trying to format the output so that it looks cleaner and more readable, i.e. everything lined up in rows and columns, like this:
Name:        Phone:        Company:        Email:        
Elon Musk    454-6723      SpaceX          [email protected]
My current code is as follows:
f = open("contactlist.csv")
csv_f = csv.reader(f)
for row in csv_f:
    print(row)
Which naturally due to lack of formatting, produces this, which still looks very unclean.
['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]']
Any tips on how to produce a cleaner output would be greatly appreciated, as I am beginner and I find all of this quite confusing. Many thanks in advance.
You could use format to left justify your output. For example,
f = open("contactlist.csv")
csv_f = csv.reader(f)
for row in csv_f:
    print('{:<15}  {:<15}  {:<20} {:<25}'.format(*row))
Output:
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]  
You can read more about format here. The < symbol left-aligns the text, and the number specifies the width of the string. Each {} can include a positional argument before the colon : - if they are omitted, the strings will appear in the order of the arguments in the unpacked list row.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With