<strong>看了老哥Mr_Cxy的python對Mysql數(shù)據(jù)庫的操作小例感覺很贊,所以就有了這個操作csv的小例(也是想練習一下類的操作)
csv可以比較方便的在不同應用之間遷移數(shù)據(jù)的榛∏砹耍可以將數(shù)據(jù)批量導出為csv格式,然后倒入到其他應用程序中夫晌。很多應用中需要導出報表雕薪,也通常用csv格式導出,然后用Excel工具進行后續(xù)編輯】独觯現(xiàn)在我們就簡單的去創(chuàng)建一個csv文件</strong>
csv文件
csv文件主要由行和列組成蹦哼,每一行含有若干個字段,每一列對應首行字段填充相對應的值要糊,根據(jù)這個結(jié)構(gòu)纲熏,調(diào)用csv模塊去創(chuàng)建一個csv文件并寫入數(shù)據(jù)。
實例代碼:store_csv.py
# -*- coding:utf-8 -*-
import csv
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
class CSV(object):
#初始化兩個參數(shù)锄俄,csv_name文件路徑+文件名局劲,另一個是第一行每一列的字段名
def __init__(self, csv_name, firstRow=[]):
self.name = csv_name
#判斷.csv文件是否存在,存在則退出程序奶赠,然后需要在主代碼更換文件名
#這一塊后續(xù)可以改進
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寫入行每一列的數(shù)據(jù)
def writeRow(self,row=[]):
with open(self.name, "ab+") as files:
write = csv.writer(files)
write.writerow(row)
樣例操作(更改python爬蟲——拉鉤網(wǎng)職位(scrapy)pipeline.py存儲csv文件部分,單線程同樣替換寫文件部分即可)
pipeline.py
# -*- coding:utf-8 -*-
from store_csv import CSV
class LagouzpPipeline(object):
#寫文件
def __init__(self):
firstRow = ['職位名稱', '公司名稱', '城市', '公司規(guī)模', '公司類型', '月薪', '行業(yè)領(lǐng)域', 'firstType', 'senondType', '工作經(jīng)歷', '學歷', '發(fā)布時間']
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>