python 爬蟲--讀取、存入csv、excel的儲存方式
阿新 • • 發佈:2018-12-14
存入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')