python文件寫入excel

需求描述:

將爬取的新聞數據按照、url地址、url Id、新聞標題、新聞內容字段寫入excel表

1.安裝並導入xlwt模塊


2.主要函數介紹

  • enumerate 函數用於遍歷序列中的元素以及它們的下標
  • w=xlwt.workbook()創建工作簿,可以指定編碼格式
  • shet=w.add_sheet(name)創建Excel的sheet頁,並指定頁名
  • shet.write(row,col,value,style)寫入數據,style可以指定單元格應用樣式
  • w.save(filepath)保存文件

3.代碼實現

#-!- coding: utf-8 -!-
import re
from numpy import *
from  xlwt import *
#獲取新聞數據集
def loadDataSet():
    with open(r'..\dataSet\sogou\news_sohu.dat','r',encoding='utf-8') as f:
        #獲取文本全部內容
        data=f.readlines()
        #用於正則匹配
        reDoc='<doc>(.*?)</doc>'
        reContent = r'<content>(.*?)</content>'
        reContenttitle = r'<contenttitle>(.*?)</contenttitle>'
        reURLID = r'<docno>(.*?)</docno>'
        reURL = r'<url>(.*?)</url>'
        #獲取每條新聞相關的信息
        r=re.compile(reDoc)
        #正則表達式參數需要字符串形式,所以需要強制轉換一下
        dataGroup=r.findall(str(data))
        #列表存放數據
        returnData=[]
        #獲取頁面URl地址、URlid、新聞標題、新聞內容
        for  i  in range(len(dataGroup)):
            listRow=[]
            listRow.extend(re.findall(reURL,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reURLID,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reContenttitle,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reContent, dataGroup[i],re.S|re.M))
            returnData.append(listRow)
    return returnData

dataSet=loadDataSet()
file=Workbook(encoding='UTF-8')
table=file.add_sheet('newsData')
#表頭
tb_head=[u'URL地址',u'URLID',u'新聞標題',u'新聞內容']
for col,title in enumerate(tb_head):
    #行的序號從0開始
    table.write(0,col,title)
for row in range(len(dataSet)):
    for col,v in enumerate(dataSet[row]):
        #row+1避免出現重寫
        table.write(row+1,col,v)
file.save('newData')
print('down')
【結果】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章