csv

csv

csv

  • 定义:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
  • 意义:数据传输,应用广泛
  • 规则:
  1. 开头是不留空,以行为单位。
  2. 可含或不含列名,含列名则居文件第一行。
  3. 一行数据不跨行,无空行。
  4. 以半角逗号(即,)作分隔符,列为空也要表达其存在。
  5. 列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
  6. 文件读写时引号,逗号操作规则互逆。
  7. 内码格式不限,可为 ASCII、Unicode 或者其他。
  8. 不支持特殊字符
    python库csv,
#-*-coding:utf-8-*-
import csv
from collections import namedtuple

if __name__ == "__main__":
    
        #读取
        with open("data.csv",'r') as f:
        datas = csv.reader(f) 
        header = next(datas)
        #获取到第一行数据头,返回一个列表
        for row in datas:
            #获取每行数据
            print row
    with open("data.csv",'r') as f:
        datas = csv.reader(f)
        headings = next(datas)
        Row = namedtuple('Row',headings)
        for row in datas:
            row = Row(*row)
            print row.Price#可以这样访问
    with open("data.csv",'r') as f:
        datas = csv.DictReader(f)#返回字典
        for row in datas:
            for key,value in row.items():
                print key+':'+value
    
        #写入     
    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("socket.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("socker1.csv",'w') as f:
        f_csv = csv.DictWriter(f,headers)
        f_csv.writeheader()
        f_csv.writerows(rows)

当分隔符不是逗号的时候可以通过csv.reader(f,delimiter='\t')来获取用tab作为分割的标志

1066297-20170926090726339-1271816554.png

posted @ 2017-09-25 22:20 笔芯er 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值