对于老版的excel文件的读写操作(.xls)
xls文件读写模块介绍
xlwt
xls文件的写操作
xlrd
xls文件的读操作
openpyxl和xlwt\xlrd对比
- openpyxl行列号都是从1开始的;xlwt、xlrd行列号都是从0开始的。
- 两者都是对工作表进行操作的。
- 两者都可以用单元格定位的方式对单元格进行操作。
xls文件写操作
先导入模块:
import xlwt
创建文件:
wb = xlwt.Workbook()
创建工作表:
sheet1 = wb.add_sheet('一年级一班成绩')
sheet2 = wb.add_sheet('一年级二班成绩')
sheet3 = wb.add_sheet('一年级三班成绩')
写入数据:
names = ['刘备', '关羽', '诸葛亮', '曹操', '貂蝉']
确定行数:
for i in range(len(names)):
在第0列依次输入names中的元素:
sheet1.write(i, 0, names[i])
确定列数(从第1行开始输入数据):
for j in range(1, 4): # 写入3列数据
随机在[0,100]中随机生成整数,在第i行j列输入数据:
sheet1.write(i, j, random.randint(0, 100)) # 使用randint是导入random模块
保存关闭:
wb.save('一年级成绩表.xls')
总代码:
import xlwt
import random
# 创建文件
wb = xlwt.Workbook()
# add_sheet:创建工作表 + 调用
sheet1 = wb.add_sheet('一年级一班成绩')
sheet2 = wb.add_sheet('一年级二班成绩')
sheet3 = wb.add_sheet('一年级三班成绩')
# 写入数据
names = ['刘备', '关羽', '诸葛亮', '曹操', '貂蝉']
for i in range(len(names)):
# 写入学生名字
sheet1.write(i, 0, names[i])
for j in range(1, 4):
# 工作表.write(row,col,content)
sheet1.write(i, j, random.randint(0, 100))
# 保存关闭
wb.save('一年级成绩表.xls')
xls文件读操作
先导入模块:
import xlrd
打开之前已经创建好了的文件:
wb = xlrd.open_workbook('一年级成绩表.xls')
选择需要读的工作表(有两种方式)
通过选择工作表的下标:
ws = wb.sheet_by_index(0) # 这里所有的工作表名都在一个列表里面,现在选择第一个工作表
通过工作表的名字选择工作表:
ws1 = wb.sheet_by_name('一年级一班成绩')
输出所选工作表中的元素(通过下标定位单元格):
print(ws1.cell(0, 0).value)
另:
以一个列表的形式输出一个文件中的所有工作表的名字:
print(wb.sheet_names())
获取行列数:
nrows:获取最大的行数
ncols:获取最大的列数
print(ws1.nrows, ws1.ncols)
初识爬虫
爬虫别称网络数据采集
按程序员的想法,由程序员自定义规则编写程序批量的爬取数据(图片、音频、视频、数据等)
爬虫的流程
- 解析HTML页面。
- 根据前端的语法或者正则表达式提取数据。
- 保存数据。
运用的模块:
requests、urllib、selenium、playwariter等
主要用requests:通过网址向服务器发送请求,等待服务器的响应结果。
requests图片下载
先导入模块:
import requests
新增一个变量存放链接地址:
URL = 'https://game.gtimg.cn/images/yxzj/coming/v2/skins//image/20220623/16559919637365.jpg'
向该网站发送请求,获取网站服务器的响应结果:
resp = requests.get(url=URL)
print(response.status_code)
如果状态码返回200将该地址的图片以二进制的形式写入:
if resp.status_code == 200:
# 将图片写入本地文件
photo = open('1.jpg', 'wb') # 以二进制的形式写入
photo.write(resp.content) # 以二进制的形式写入时用content 以字符串形式写入用text
photo.close()
总代码:
import requests
URL = 'https://game.gtimg.cn/images/yxzj/coming/v2/skins//image/20220623/16559919637365.jpg'
resp = requests.get(url=URL)
if resp.status_code == 200:
# print(resp.content)
# 将图片写入本地文件
photo = open('1.jpg', 'wb') # 以二进制的形式写入
photo.write(resp.content) # 以二进制的形式写入时用content 以字符串形式写入用text
photo.close()