总结
# 首先导入openpyxl
import openpyxl
openpyxl.load_workbook(地址)
- 打开现有的excel文件openpyxl.Workbook()
- 新建一个excel文件
# 1.获取工作簿对象(工作簿对应的就是一个excel文件)
# 新建(默认有一个工作表)
# work_book = openpyxl.Workbook()
# 打开
# work_book = openpyxl.load_workbook(文件路径)
# work_book = openpyxl.Workbook()
work_book = openpyxl.load_workbook('files/test2.xlsx')
- 获取所有的表的表名 – 工作簿对象.sheetnames
all_names = work_book.sheetnames
- 获取表
sheet = work_book['Sheet']
- 工作簿对象.create_sheet(表名,表单下标)
# 新建表
work_book.create_sheet('学生表', 1)
- 工作簿对象.remove(表对象)
# 删除表
work_book.remove(sheet)
# 表重命名
sheet.title = 'Student'
- 写入数据到单元格
# 单元格对象.value -- 获取单元格中的内容
# 单元格对象.value = 新值 -- 修改单元格中的内容
sheet = work_book['Student']
# 获取单元格 方法一
# 工作表对象.cell(行号,列号)
cell1 = sheet.cell(1, 1)
# 修改单元格内容
cell1.value = '姓名'
# 方法二
cell2 = sheet['B1']
cell2.value = '年龄'
# 清空单元格
cell2.value = ''
# 5.保存文件
work_book.save('files/test2.xlsx')
- excel读操作
# 1.打开文件
wb = openpyxl.load_workbook('files/test1.xlsx')
# 2.获取工作表
# sheet = wb['学生表']
sheet = wb.active
# 3.获取单元格
# 1) 获取单个单元格
# sheet.cell(行号,列号) -- 行号和列号都是从1开始的数字
# sheet[位置信息] -- 位置信息是类似:'A1','B2'的行列信息,其中字母是列信息,数字是行号
# 2)以行为单位获取单元格对象
# 工作表对象.iter_rows(最小行号,最大行号,最小列号,最大列号)
# cells = sheet.iter_rows(1, 4, 1, 4)
# print(list(cells))
#
# row_4 = sheet.iter_rows(4, 4)
# print(list(row_4))
# cells = sheet.iter_rows(2, 4, 1, 2)
# print(list(cells))
# 3) 以列为单位获取单元格对象
# cells = sheet.iter_cols(1, 4, 1, 4)
# print(list(cells))
all_scores = sheet.iter_cols(4, 4, 2, 4)
# print(list(all_scores))
for score in next(all_scores):
print(score.value)
- selenium设置选项
from selenium import webdriver
url = 'https://www.jd.com'
# 1.创建设置选项
options = webdriver.ChromeOptions()
# 2.添加选项参数
# 1)取消测试环境
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 2)取消图片加载(提高爬虫效率)
options.add_experimental_option("prefs", {
"profile.managed_default_content_settings.images": 2})
b = webdriver.Chrome(options=options)
b.get(url)
print(b.page_source)
- 多线程技术
# 一个进程默认有一个线程,这个线程叫主线程。其他的线程(需要手动创建)都叫子线程。
# 如果一个python程序需要子线程,需要手动创建线程类Thread的对象
# 代码实现多线程的原理:
import time
from datetime import datetime
from threading import Thread
# Thread类 -- 线程类 Thread类的对象 -- 子线程
def download(name):
print(f'{
name