CSV结束

时间:2014-12-16 11:21:03

标签: python csv dictionary

我正在尝试读取CSV文件以便在Python中进行处理。我想要的只是将城市的值与字典中的状态相关联,该字典存在于CSV中,所有逗号分隔。获取状态名称后,我希望将城市作为其值,我想知道文件的行尾。

我的CSV结构如下:

State,city1,city2,city3,city4,city5,..,cityn

由于所有州都可能没有所有城市的值,因此某些城市值为空。

2 个答案:

答案 0 :(得分:3)

如果迭代文件,它将自动产生每一行;换句话说,你不需要知道线的终点:

from collections import defaultdict

d = defaultdict(list)

with open('somefile.csv') as f:
    for line in f: # this will automatically step over each line correctly
        bits = line.split(',')
        d[bits[0]] += bits[1:]

for state,cities in d.items():
    print('{} has {} cities: '.format(state, len(cities))
    for city in cities:
        print('\t{}'.format(city))

答案 1 :(得分:1)

基本上,有两种解决方案可以打破每个新行的内容:

with open(your_file) as f:
    for line in f:
        do_stuff()

for line in you_csv_content.split("\n"):
    do_stuff()