Search code examples
python-3.xlistopencsv

How to Append List in Python by reading csv file


I am trying to write a simple program that should give the following output when it reads csv file which contains several email ids.

email_id = ['[email protected]','[email protected]','[email protected]'] #required format

but the problem is the output I got is like this following:

[['[email protected]']]
[['[email protected]'], ['[email protected]']]
[['[email protected]'], ['[email protected]'], ['[email protected]']] #getting this wrong format

here is my piece of code that I have written: Kindly suggest me the correction in the following piece of code which would give me the required format. Thanks in advance.

import csv

email_id = []

with open('contacts1.csv', 'r') as file:
    reader = csv.reader(file, delimiter = ',')
    for row in reader:
        email_id.append(row)
        print(email_id)

NB.: Note my csv contains only one column that has email ids and has no header. I also tried the email_id.extend(row) but It did not work also.


Solution

  • You need to move your print outside the loop:

    with open('contacts1.csv', 'r') as file:
        reader = csv.reader(file, delimiter = ',')
        for row in reader:
            email_id.append(row)
        print(sum(email_id, []))
    

    The loop can also be like this (if you only need one column from the csv):

    for row in reader:
        email_id.append(row[0])
    print(email_id)