Каков наилучший и самый элегантный способ получить содержимое файла csv в виде списков? Обратите внимание, что требуемые столбцы, такие как Страна, Область и Население, должны быть идентифицированы автоматически, как в приведенной ниже программе.извлекает содержимое файла csv в виде списков
with open ('data.csv','r') as infile:
contents = infile.read().split(',')
with open ('data.csv','r') as infile:
countries = [item.split(',')[contents.index('Country')] for item in infile]
with open ('data.csv','r') as infile:
areas = [item.split(',')[contents.index('Area')] for item in infile]
with open ('data.csv','r') as infile:
populations = [item.split(',')[contents.index('Population')] for item in infile]
print (countries)
print (areas)
print (populations)
Выше программы работает, но ищет довольно короткую и читаемую программу.
Update: Чтобы предотвратить ошибку, когда некоторые колонки, такие как «страна» не существует в каком-то файле, программа может быть улучшена:
countries = [item.split(',')[contents.index('Country')] for item in infile if 'Country' in contents]
Как это можно сделать с помощью модуля Csv ??
Вы попробовали [csv module] (http://docs.python.org/2/library/csv.html)? – zero323