前言
经常需要使用 Python 处理各种不同方式编码的数据,比如 CSV 文件,JSON, XML 和二进制包装记录等等,这些都是很好的保存数据的方式,也是python非常擅长的。
1. 读写 CSV 数据
python中有专门的csv库供用户使用,并且相对比较完善,一般的csv处理使用这个包就够了
比如下方是一个名为test.csv的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 csv
with open('testtcsv') as f:
f_csv = csv.reader(f)
headers = next(f_csv)
for row in f_csv:
print(row)
输出结果
['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']
row 会是一个列表。因此,为了访问某个字段,你需要使用下标,如 row[0] 访问 Symbol, row[4] 访问 Change.或者将他读到字典中去,比如
import csv
with open('test.csv') as f:
f_csv =csv.DictReader(f)
headers = next(f_csv)
for row in f_csv:
print(row)
输出结果:
root@tjsc:/opt# python test.py
{
'Symbol': 'AIG', 'Price': '71.38', 'Date': '6/11/2007', 'Time': '9:36am', 'Change': '-0.15', 'Volume': '195500'}
{
'Symbol': 'AXP',