zoukankan      html  css  js  c++  java
  • 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=' ')来获取用tab作为分割的标志

  • 相关阅读:
    写一个Windows上的守护进程(4)日志其余
    写一个Windows上的守护进程(3)句柄的管理
    写一个Windows上的守护进程(2)单例
    写一个Windows上的守护进程(1)开篇
    Xcode 特定项目运行提示无响应
    git squash 的使用
    关于.framework 文件过大 移除包内对i386 x86_64 的支持
    git 恢复被覆盖本地提交内容
    iOS企业应用 部署配置
    关于项目中测试环境跟正式环境的区分
  • 原文地址:https://www.cnblogs.com/qxhn/p/7594183.html
Copyright © 2011-2022 走看看