1. 程式人生 > >python 爬蟲--讀取、存入csv、excel的儲存方式

python 爬蟲--讀取、存入csv、excel的儲存方式

存入csv檔案

#匯入
import csv
#幾種開啟寫入csv檔案的方式,沒有檔案則建立

#方法一:有空行的寫入
#with open('data.csv','w',encoding='utf-8')as csvfile:
#方法二:無空行的寫入newline=''
#with open('data.csv','w',encoding='utf-8',newline='')as csvfile:
#方法三:匯入模組
import codecs
with codecs.open('data.csv','w',encoding='utf-8')as csvfile:

#寫入
    write = csv.writer(csvfile)
    #寫入語法:write.writerow([寫入的是列表])
    write.writerow(['編號','網址','名稱'])
    #寫write.writerow入多行語法:write.writerows(二維列表)
    write.writerows([
        [1,'www.baidu.com','百度'],
        [2,'www.jd.com','京東'],
        [3,'www.qq.com','騰訊']
    ])

執行結果

讀取csv檔案

import csv

#先額外追加幾條資料
with open('data.csv','a',encoding='utf-8',newline='')as csvfile:
    write = csv.writer(csvfile)
    write.writerows([
        ['江蘇省|淮安市|清江浦區'],
        ['四川省|成都市|錦江區'],
        ['山東省|德州市|樂陵市']
    ])


#自定義讀取規則
#csv.register_dialect('自取規則名稱',delimiter = '自定義分隔符',quoting =csv.QUOTE_ALL)
csv.register_dialect('mydialent',delimiter = '|',quoting =csv.QUOTE_ALL)
with open('data.csv','r',encoding='utf-8')as csvfile:
    read=csv.reader(csvfile)
    # #方法一:讀取某一行甚至一些行,list()[index]的方法,通過索引讀取
    # print(list(read)[1])#讀取第一行的例子
    # #方法二:
    # for i,v in enumerate(read):
    #     if i == 1:
    #         print(v)#讀取第一行
    # #讀取多行,前四行的方法
    for i, v in enumerate(read):
    #     if i <4:    #讀取到第四行依然繼續迭代
    #         print(v)#讀取前四行

        #讀取到第四行就停止迭代,用break
        print(v)
        if i == 3 :
            break
    #
    readagain = csv.reader(csvfile,'mydialent')
    for each in readagain:
        print(each)

讀取excel檔案

#匯入模組
import xlrd
import openpyxl#可讀可寫可執行模組
#開啟工作簿
workbook = xlrd.open_workbook('某公司貿易資料.xlsx')
#獲取所有資料表的list
sheets = workbook.sheets()
#獲取第一張表
sheet_one = sheets[0]
#第二種方法獲取第一張表
#sheet_one = workbook.sheet_by_name('產品類別')#拿出產品類別的表
#sheet_one = workbook.sheet_by_index(1)#從1開始不是從0

#獲取總行數與總列數
nrows = sheet_one.nrows#總行數
ncols = sheet_one.ncols#總列數

# #獲取某一行
# for i in range(nrows):
# #     myRowValues = sheet_one.row_values(i)
# #     print(myRowValues)
# #獲取某一列
# for j in range(ncols):
#     myColValues = sheet_one.col_values(j)
#     print(myColValues)

# #獲取單元格
#     sheet_one.cell(i,j).value
#     sheet_one.cell_value(i,j)

for i in range(nrows):
    for j in range(ncols):
        myValues = sheet_one.cell(i,j).value
        print(myValues)

#輸入某一個
print(sheet_one.cell_value(6,1))

寫入excel檔案

import xlwt
#新建一個workbook..注意W要大寫
workbook = xlwt.Workbook()
#新建工作表
sheet = workbook.add_sheet('newsheet')
#寫入內容 sheet.write(i,j,value)
sheet.write(0,0,0)
#寫入九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        sheet.write(i,j-1,str(j)+'x'+str(i)+'='+str(j*i))#數字不能直接和字串拼接
#儲存
workbook.save('newExcel.xls')

執行結果

修改excel檔案中的內容

from xlutils.copy import copy
import xlrd
wb = xlrd.open_workbook('newExcel.xls')

#複製一份工作簿
newwb = copy(wb)

#獲取府之後的工作簿的工作表
sheet = newwb.get_sheet(0)

#使用write寫入
sheet.write(0,2,'您好!')

#儲存,如果不存在就會新建,存在就覆蓋
newwb.save('newExcel.xlsx')

存入excel檔案使用openpy模組

#W要大寫
from openpyxl import Workbook
#建立workbook工作簿
wb = Workbook()
#使用第一張表
sheet = wb.active
sheet.title = '我的表格'

#按行寫入的語法
sheet.append([1,2,3])
sheet.append([4,5,6])

wb.save('new.xlsx')