<strong>看了老哥Mr_Cxy的python对Mysql数据库的操作小例感觉很赞,所以就有了这个操作csv的小例(也是想练习一下类的操作)
csv可以比较方便的在不同应用之间迁移数据。可以将数据批量导出为csv格式,然后倒入到其他应用程序中。很多应用中需要导出报表,也通常用csv格式导出,然后用Excel工具进行后续编辑。现在我们就简单的去创建一个csv文件</strong>
csv文件
csv文件主要由行和列组成,每一行含有若干个字段,每一列对应首行字段填充相对应的值,根据这个结构,调用csv模块去创建一个csv文件并写入数据。
实例代码:store_csv.py
# -*- coding:utf-8 -*-
import csv
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
class CSV(object):
#初始化两个参数,csv_name文件路径+文件名,另一个是第一行每一列的字段名
def __init__(self, csv_name, firstRow=[]):
self.name = csv_name
#判断.csv文件是否存在,存在则退出程序,然后需要在主代码更换文件名
#这一块后续可以改进
if os.path.exists(csv_name):
print '文件已存在,请更换文件名'
os._exit(1)
with open(self.name, "ab+") as files:
write = csv.writer(files)
write.writerow(firstRow)
#row写入行每一列的数据
def writeRow(self,row=[]):
with open(self.name, "ab+") as files:
write = csv.writer(files)
write.writerow(row)
样例操作(更改python爬虫——拉钩网职位(scrapy)pipeline.py存储csv文件部分,单线程同样替换写文件部分即可)
pipeline.py
# -*- coding:utf-8 -*-
from store_csv import CSV
class LagouzpPipeline(object):
#写文件
def __init__(self):
firstRow = ['职位名称', '公司名称', '城市', '公司规模', '公司类型', '月薪', '行业领域', 'firstType', 'senondType', '工作经历', '学历', '发布时间']
self.write = CSV('lagou.csv', firstRow)
def process_item(self, item, spider):
row = [item['name'], item['city'], item['company_name'], item['size'], item['financeStage'],item['salary'], item['industryField'], item['firstType'],item['secondType'],item['workYear'],item['edu'],item['time']]
self.write.writeRow(row)
return item
<strong>可能在遇到文件存在的情况上处理的过于简单化,大家可以留言评论共同完善。</strong>