-
Python爬虫基础讲解(十一):数据持久化——CSV模块简介
1. 写入文件
我们把需要写入的数据放到列表中,写文件时会把列表中的元素写入到csv文件中。
import csv ll = [[1,2,3,4], [1,2,3,4], [5,6,7,8], [5,6,7,8]] with open( ' example1.csv', 'w' , newline=' ') as csvfile: """ delimiter:分割符 """ spamwriter = csv.writer(csvfile,delimiter=', ') for 1 in 11: spamwriter.writerow([1,2,3,4])
可能遇到的问题:直接使用这种写法会导致文件每一行后面会多一个空行。使用newline=''解决
使用open直接写入
with open( 'examp1e2.csv', 'w') as csvfile: """ delimiter:分割符 """ for 1 in 17: csvfile.write(",".join(map(str,1))) csvfile.write( ' \n ')
2. 读取文件
import csv with open( ' example.csv ' , encoding='utf-8' ) as f: csv_reader = csv.reader(f) for row in csv_reader: print(row)
fi7e: example.csv csv数据

默认的情况下,读和写使用逗号做分隔符(delimiter),当遇到特殊情况是,可以根据需要手动指定字符,例如:
with open( ' example.csv', encoding='utf-8' ) as f: reader = csv.reader(f,delimiter=' , ') for row in reader: print(row)
上述示例指定冒号作为分隔符
有点需要注意的是,当用writer写数据时,None 会被写成空字符串,浮点类型会被调用repr()方法转化成字符串。所以非字符串类型的数据会被str()成字符串存储。所以当涉及到unicode 字符串时,可以自己手动编码后存储或者使用csv提供的unicodewriter 。
3. 写入与读取字典
csv还提供了一种类似于字典方式的读写,方式如下:

其中fieldnames指定字典的 key值,如果reader里没有指定那么默认第一行的元素,在writer里一定要指定这个。
#%%写 import csv with open( ' names.csv', 'w ') as csvfile: fieldnames = ['first_name ', 'last_name '] writer = csv.Dictwriter(csvfi1e,fieldnames=fieldnames) writer.writeheader() writer.writerow(i'first_name ' : 'Baked', 'last_name ' : 'Beans' }) writer.writerow(i'first_name ' : 'Love1y'}) writer.writerow(i 'first_name ' : 'wonderfu7 ', '7ast_name': 'spam ' }) #%%读 import csv with open( ' names.csv ', newline=' ') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row[ 'first_name'],row[ ' 1ast_name ' ])
文章出处:https://www.cnblogs.com/qshhl/p/14815123.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数