快要毕业那会儿在下编写了一個招聘网站招聘岗位的爬虫提供给前女神参考,最开始我是存到mysql中然后在到处一份csv文件给前女神。到了参加工作后由于经常使用excel绘制圖表(谁叫公司做报表全用excel呢…………….),在下才瞬间顿悟有时候将爬虫爬取的数据直接存到csv中或许会更加方便一些!
既然涉及到爬蟲的写入文件,那这里我就先介绍python处理csv数据对csv的写!
python处理csv数据自带了csv模块提供用户对csv文件进行读写操作要对csv文件进行写操作,首先要创建一个writer对象,参考help(csv.writer)情况如下
调用writer对象的前提是:需要传入一个文件对象,然后才能在这个文件对象的基础上调用csv的写入方法writerow(写入一行)writerrow(写入多行)写入数据的代码如下:
这段代码我首先定义了写入csv文件的表头、每一列的内容,然后打开一个csv文件将文件对象作为参数传給csv.writer(),最后将表头和每一行的内容写入到csv文件中
注意:如果打开csv文件出现空行的情况,那么需要添加一个参数 newline=”(我使用windows出现了这种情况使用linux mint没有出现)
2、写入字典序列的数据
参考help(csv.DictWriter)可知,在写入字典序列类型数据的时候需要传入两个参数,一个是文件对象——f一个是芓段名称——fieldnames,到时候要写入表头的时候只需要调用writerheader方法,写入一行字典系列数据调用writerrow方法并传入相应字典参数,写入多行调用writerows
读取csv時需要使用reader并传如一个文件对象,而且reader返回的是一个可迭代的对象需要使用for循环遍历,代码如下:
在上面row是一个列表,如果想要查看固定的某列则需要加上下标,例如我想要查看name那么只需要改为row[1]
数据文件如上所示需求:第一列编号小的顺序循环跟比它大的比较,如果第二列相等判断第三,四五列,如果与之相比的第五列不等于4而且时间范围在它之内则為错误数据把数据抛出来,如果与之相比的第五列等于4并且第三列时间小于等于它第四列时间等于它为正确数据,否则为错误数据把數据抛出来然后跳出循环从下一条数据开始按照上面规则往下比较。
如图所示python处理csv数据3根据csv文件自動创建表,存在几个问题
1是第一列第一个没有表头,怎么做二是数据类型该怎么定义
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。