简体   繁体   中英

Creating a list using csv.reader()

I'm trying to create a list in python from a csv file. The CSV file contains only one column, with about 300 rows of data. The list should (ideally) contain a string of the data in each row.

When I execute the below code, I end up with a list of lists (each element is a list, not a string). Is the CSV file I'm using formatted incorrectly, or is there something else I'm missing?

filelist = []                
with open(r'D:\blah\blahblah.csv', 'r') as expenses:
    reader = csv.reader(expenses)
    for row in reader:
        filelist.append(row)

row is a row with one field. You need to get the first item in that row:

filelist.append(row[0])

Or more concisely:

filelist = [row[0] for row in csv.reader(expenses)]

It seems your "csv" doesn't contain any seperator like ";" or ",". Because you said it only contains 1 column. So it ain't a real csv and there shouldn't be a seperator.

so you could simply read the file line-wise:

filelist = []
for line in open(r'D:\blah\blahblah.csv', 'r').readlines():
    filelist.append(line.strip())

Each row is read as list of cells. So what you want to do is

output = [ row[0] for row in reader ]

since you only have the first cell filled out in each row.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM