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','腾讯']
    ])

python 爬虫--读取、存入csv、excel的存储方式

读取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')

python 爬虫--读取、存入csv、excel的存储方式

修改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')