我正在尝试读取CSV文件以便在Python中进行处理。我想要的只是将城市的值与字典中的状态相关联,该字典存在于CSV中,所有逗号分隔。获取状态名称后,我希望将城市作为其值,我想知道文件的行尾。
我的CSV结构如下:
State,city1,city2,city3,city4,city5,..,cityn
由于所有州都可能没有所有城市的值,因此某些城市值为空。
答案 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()