Python 操作csv 代码示例
来源:互联网 发布:算法导论第四版pdf 编辑:程序博客网 时间:2024/05/19 19:40
对于大多数的CSV格式的数据读写问题,都可以使用 csv 库。 例如:假设你在一个名叫stocks.csv文件中有一些股票市场数据,就像这样:
Symbol,Price,Date,Time,Change,Volume"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
下面向你展示如何将这些数据读取为一个元组的序列:
import csvwith open('stocks.csv') as f: f_csv = csv.reader(f) headers = next(f_csv) for row in f_csv: # Process row ...
在上面的代码中, row 会是一个列表。因此,为了访问某个字段,你需要使用下标,如 row[0] 访问Symbol, row[4] 访问Change。
由于这种下标访问通常会引起混淆,你可以考虑使用命名元组。例如:
from collections import namedtuplewith open('stock.csv') as f: f_csv = csv.reader(f) headings = next(f_csv) Row = namedtuple('Row', headings) for r in f_csv: row = Row(*r) # Process row ...
它允许你使用列名如 row.Symbol 和 row.Change 代替下标访问。 需要注意的是这个只有在列名是合法的Python标识符的时候才生效。如果不是的话, 你可能需要修改下原始的列名(如将非标识符字符替换成下划线之类的)。
另外一个选择就是将数据读取到一个字典序列中去。可以这样做:
import csvwith open('stocks.csv') as f: f_csv = csv.DictReader(f) for row in f_csv: # process row ...
在这个版本中,你可以使用列名去访问每一行的数据了。比如,row[‘Symbol’] 或者 row[‘Change’]
为了写入CSV数据,你仍然可以使用csv模块,不过这时候先创建一个 writer 对象。例如:
headers = ['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('stocks.csv','w') as f: f_csv = csv.writer(f) f_csv.writerow(headers) f_csv.writerows(rows)
如果你有一个字典序列的数据,可以像这样做:
headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume']rows = [{'Symbol':'AA', 'Price':39.48, 'Date':'6/11/2007', 'Time':'9:36am', 'Change':-0.18, 'Volume':181800}, {'Symbol':'AIG', 'Price': 71.38, 'Date':'6/11/2007', 'Time':'9:36am', 'Change':-0.15, 'Volume': 195500}, {'Symbol':'AXP', 'Price': 62.58, 'Date':'6/11/2007', 'Time':'9:36am', 'Change':-0.46, 'Volume': 935000}, ]with open('stocks.csv','w') as f: f_csv = csv.DictWriter(f, headers) f_csv.writeheader() f_csv.writerows(rows)
至于其它的在具体编程中可能会遇到的编程思想上的问题可以具体参看:
阅读全文
0 0
- Python 操作csv 代码示例
- python json转csv示例
- python操作csv
- python操作csv文件
- python操作csv
- python 操作csv
- python 操作csv文件
- php csv操作类代码
- python csv文件写操作
- python读写操作csv文件
- python操作csv文件范例
- 如何解析CSV文件的示例代码
- Python常见文件操作的函数示例代码
- Python常见文件操作的函数示例代码
- Python(五)文件操作基础代码示例
- 写入csv操作,python自带csv组件
- python 37 pandas操作csv文件小结,csv文件合并
- python文件操作示例
- 数据结构
- Codeforces Round #433 D. Jury Meeting
- office 2010配置进度框
- wamp本地访问速度特别慢
- 嵌入式每日学习心得 网络通信技术(TCP)
- Python 操作csv 代码示例
- 解决源码编译 ZeroC Ice 缺失 mcpp、bzip2、expat 库的问题
- LVDS原理与应用简介
- 排序-4-快速
- react-native-tab-navigator简单使用
- 1-6、matlab常用封装函数与快捷键
- csv.writerow寫入多出空白一行問題解決
- 求最大公约数(辗转相除法)
- 程序中的乐观锁与悲观锁,以及动手实现乐观锁 (转)