python 读写csv

来源:互联网 发布:c语言经典编程题 编辑:程序博客网 时间:2024/06/05 16:45
对于大多数的CSV格式的数据读写问题,都可以使用csv库。例如,假设你在一个名叫stock.csv文件中有一些股票市场数据:[root@node01 python]# python t5.py ['AA', '39.48', '6/11/2007', '9:36am', '-0.18', '181800']['AIG', '71.38', '6/11/2007', '9:36am', '-0.15', '195500']['AXP', '62.58', '6/11/2007', '9:36am', '-0.46', '935000']['BA', '98.31', '6/11/2007', '9:36am', '+0.12', '104800']['C', '53.08', '6/11/2007', '9:36am', '-0.25', '360900']['CAT', '78.29', '6/11/2007', '9:36am', '-0.23', '225400'][root@node01 python]# vim t5.py[root@node01 python]# python t5.py ['AA', '39.48', '6/11/2007', '9:36am', '-0.18', '181800']<type 'list'>['AIG', '71.38', '6/11/2007', '9:36am', '-0.15', '195500']<type 'list'>['AXP', '62.58', '6/11/2007', '9:36am', '-0.46', '935000']<type 'list'>['BA', '98.31', '6/11/2007', '9:36am', '+0.12', '104800']<type 'list'>['C', '53.08', '6/11/2007', '9:36am', '-0.25', '360900']<type 'list'>['CAT', '78.29', '6/11/2007', '9:36am', '-0.23', '225400']<type 'list'>[root@node01 python]# cat t5.py import csvwith open('stocks.csv') as f:   f_csv = csv.reader(f)   headers = next(f_csv)   for row in f_csv:     print row     print type(row)在上面的代码中,row是一个列表,因此为了访问某个字段,你需要使用下标。如row[0] 访问Symbol,row[4]访问Change.由于这种下标访问通常会引起混淆,你可以考虑使用命名元组,例如:另外一个选择就是讲数据读取到一个字典序列中去,可以这样做:[root@node01 python]# cat t6.py import csvwith open('stocks.csv') as f: f_csv = csv.DictReader(f) for row in f_csv:   print row   print type(row)[root@node01 python]# python t6.py {'Symbol': 'AA', 'Volume': '181800', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '39.48', 'Change': '-0.18'}<type 'dict'>{'Symbol': 'AIG', 'Volume': '195500', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '71.38', 'Change': '-0.15'}<type 'dict'>{'Symbol': 'AXP', 'Volume': '935000', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '62.58', 'Change': '-0.46'}<type 'dict'>{'Symbol': 'BA', 'Volume': '104800', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '98.31', 'Change': '+0.12'}<type 'dict'>{'Symbol': 'C', 'Volume': '360900', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '53.08', 'Change': '-0.25'}<type 'dict'>{'Symbol': 'CAT', 'Volume': '225400', 'Time': '9:36am', 'Date': '6/11/2007', 'Price': '78.29', 'Change': '-0.23'}<type 'dict'>为了写入CSV数据,你仍然可以使用csv模块,不过这时候创建一个writer对象[root@node01 python]# cat t7.py import csvheaders = ['Symbol','Price','Date','Time','Change','Volume']rows = [('AA', 39.48, '6/11/2007', '9:36am', -0.18, 181800),('AIG', 71.38, '6/11/2007', '9:36am', -0.15, 195500),('AXP', 62.58, '6/11/2007', '9:36am', -0.46, 935000),]with open('aaa.csv','w') as f:    f_csv = csv.writer(f)    f_csv.writerow(headers)    f_csv.writerows(rows)

原创粉丝点击