爬虫专题@IT·互联网Python爬虫作业

python简单操作csv文件小例

2017-05-01  本文已影响0人  loading_miracle

<strong>看了老哥Mr_Cxypython对Mysql数据库的操作小例感觉很赞,所以就有了这个操作csv的小例(也是想练习一下类的操作)

csv可以比较方便的在不同应用之间迁移数据。可以将数据批量导出为csv格式,然后倒入到其他应用程序中。很多应用中需要导出报表,也通常用csv格式导出,然后用Excel工具进行后续编辑。现在我们就简单的去创建一个csv文件</strong>

csv文件

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>

上一篇下一篇

猜你喜欢

热点阅读