import openpyxl
workbook = openpyxl.load_workbook(filename='zqw.xlsx')
worksheet = workbook['Sheet1']
data_dict = {}
for row in worksheet.iter_rows(min_row=2, values_only=True):
key = row[0]
value = {'name': row[1], 'age': row[2], 'gender': row[3]}
data_dict[key] = value
print(data_dict)
以上代码将 Excel 文件中第一列作为字典的键,将第二列到第四列的数据作为一个字典,作为字典的值,然后将每一行的字典添加到
data_dict 字典中。
excel封装和调用
#将 Excel 数据封装成一个类
import openpyxl
from openpyxl.worksheet.worksheet import Worksheet
def read_excel(file, sheet_name):
"""读取excel"""
wb = openpyxl.load_workbook(file)
sheet:Worksheet = wb[sheet_name]
items = list(sheet.values)
# 转成dict
title = items[0]
new_list = [dict(zip(title, item)) for item in items[1:]]
return new_list
二、数据库的操作
pymysql 库的操作
下面以 MySQL 为例,介绍 Python 对数据库的常用操作:
#1、安装pymysql 库
pip install pymysql
#2、导入库
import pymysql
#3、连接数据库
conn = pymysql.connect(host='47.113.180.81', #地址
port=3306, #端口号
user='lemon', #用户名
password='lemon123', #密码
database='yami_shops') #数据库
print(conn)
#4、创建数据库表
#使用 connection.cursor() 函数创建一个游标对象 cursor
with connection.cursor() as cursor:
create_table_query = """ #创建名为 users 的数据库表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT,
email VARCHAR(255)
#使用 cursor.execute() 函数执行 SQL 语句
cursor.execute(create_table_query)
#使用 connection.commit() 函数提交事务,完成数据库表的创建。
connection.commit()
#5、插入数据
with connection.cursor() as cursor:
insert_query = "INSERT INTO users (name, age, email) VALUES (%s, %s, %s)"
cursor.execute(insert_query, ('Tom', 20, 'tom@example.com'))
connection.commit()
#6、查询数据
with connection.cursor() as cursor:
select_query = "SELECT * FROM users"
cursor.execute(select_query)
result = cursor.fetchall()
for row in result:
print(row)
数据库的封装
import pymysql
#创建数据库封装类(创建一个 MySQLDB 类,用于封装数据库操作)
class MySQLDB:
def __init__(self, host, user, password, database, port=3306, charset='utf8mb4'):
self.host = host
self.user = user
self.password = password
self.database = database
self.port = port
self.charset = charset
self.connection = None
self.cursor = None
def connect(self):
self.connection = pymysql.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database,
port=self.port,
charset=self.charset
self.cursor = self.connection.cursor()
def close(self):
self.cursor.close()
self.connection.close()
def execute(self, sql, args=None):
self.connect()
self.cursor.execute(sql, args)
self.connection.commit()
result = self.cursor.fetchall()
except Exception as e:
self.connection.rollback()
raise e
finally:
self.close()
return result
#使用数据库封装类(使用 MySQLDB 类来连接数据库、插入数据、查询数据等操作)
db = MySQLDB('localhost', 'root', 'password', 'test_db')
# 插入数据
sql = "INSERT INTO users (name, age, email) VALUES (%s, %s, %s)"
result = db.execute(sql, ('Tom', 20, 'tom@example.com'))
# 查询数据
sql = "SELECT * FROM users"
result = db.execute(sql)
for row in result:
print(row)
数据库的调用
from openpyxl.worksheet.worksheet import Worksheet
from pymysql.cursors import DictCursor #导入字典游标
import pymysql
# 链接,填入相关的数据
conn = pymysql.connect(
host='47.113.180.81', #地址
port=3306, #端口号
user='lemon', #用户名
password='lemon123', #密码
database='yami_shops'#数据库
# 获取游标
cursor = connection.cursor()
# 执行 SQL 语句
cursor.execute('SELECT * FROM users')
# 获取查询结果
result = cursor.fetchall()
# 打印查询结果
print(result)
# 关闭游标和连接
cursor.close()
connection.close()
#执行插入、更新或删除操作,可以使用 execute() 方法,并使用 commit() 方法提交更改
# 插入一条数据
cursor.execute("INSERT INTO users (name, age, email) VALUES ('张三', 25, 'zhangsan@example.com')")
connection.commit()
# 更新数据
cursor.execute("UPDATE users SET age = 30 WHERE name = '张三'")
connection.commit()
# 删除数据
cursor.execute("DELETE FROM users WHERE name = '张三'")
connection.commit()
三、路径处理
在excel和数据库目录下建一个子文件夹config,将包setting移动到config文件夹下
import pathlib
#用法1:获取当前文件的路径
current_file = pathlib.Path(__file__).absolute()
print(current_file) # 输出结果:E:\pythonProject\zqw\excel和数据库\demo06_路径处理.py
#获取上一级目录
parent = current_file.parent.parent
print(parent) #输出结果:E:\pythonProject\zqw\excel和数据库
再多获取上一级目录,加一个 .parent,多获取一层目录
parent = current_file.parent.parent
print(parent) #输出结果:E:\pythonProject\zqw
#路径的拼接
excel_file = parent/"zqw.xlsx"
print(excel_file) #输出结果:E:\pythonProject\zqw\zqw.xlsx
import pytest
from zqw.excel和数据库.demo03_excel封装 import read_excel
from zqw.excel和数据库.config.setting import excel_file
def login(username, password):
"""登录"""
if username == 'admin' and str(password) == "123456":
return "登录成功"
elif not username:
return "用户名为空"
elif not password:
return "密码为空"
return "用户名或密码不正确"
items = read_excel(excel_file, 'Sheet1') #把路径拼接放这里
class TestLogin:
@pytest.mark.parametrize("item", items)
def test_login_01(self, item):
"""模块名和函数名都以test_ 开头,是pytest设置的简单的规则"""
username = item["username"]
password = item["password"]
expected = item["expected"]
actual = login(username, password)
assert expected == actual
调试过程中遇到的阻塞处
指定工作表:Sheet1未区分大小写,报错,
excel表格未清空空白行,运行报错,阻塞一上午才检查出(菜鸟)
from xlutils.copy import copy
import os
dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
class OperationExcel():
操作excel,获取tes
接口测试就是数据的测试,在测试之前,需要准备好测试数据,而测试数据可以用数据库、excel、txt和csv方式,当然还有一种方式,那就是使用json文件来储存测试数据。常用的方式就是这些。
python读取json文件和读取txt方式是一样的,获取路径,判断路径是否存在,获取文件名及绝对路径,打开读取数据,提取关键数据,关闭文件。具体流程,画了一个草图方便理解:
具体代码实现
@author: Leo
@software: pycharm
@file: operate_json.py
@time: 2020/5/3 0003 9:01
@Desc:
Python零基础速成班,适用于入门或初级学习人群,采用Jupyter Notebook原装教程,.ipynb格式拷贝到Jupyter Notebook目录下即可运行,网页交互式可视化Python编程,全中文注解,下载即用,对初学者非常友好,也可作为Python程序员基础知识的补充再学习材料。
本教程由专业老师设计,由浅入深,带你扎实学习Python知识,附带的课后练习题精心设计,作为学习后知识的巩固和提升。
本教程设置3级标题,对知识点进行分类,内容上由基础+进阶的方式呈现,练习题也设置了必做和挑战项目,分别适用于初学者和进阶学习者。
整个教程大概有80个学时,同时也引入图像识别基础、算法基础、小游戏、爬虫、API设计基础、Excel文档操作、Numpy、Pandas、Matplotlib画图、数据库基础、网页WEB编程和Flask框架基础等,完成后将达到初级Python程序员水平。
在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~
如果在合并之前单元格中有数据,在合并之后数据可能会覆盖成空白,建议在使用时,先做结构,先合并之后,在插值。工作簿至少要包含一个工作表(sheet), 可以使用如下来获取它。比如说修改A1单元格位置的参数。也可以创建自定义名称的工作表。f"原料模板导出.xlsx"
(1)什么是xlrd模块?python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。(2)为什么使用xlrd模块?在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用!官方文档:https://xlrd.readthedocs.io/en/latest/1、常用单元格的数据类型empty(空的)numberdatebooleanerror。
前面的文章《Python Pandas库批量处理Excel数据》简单介绍了利用Python的pandas库对大量的Excel文件进行合并,数据清洗等操作;pandas非常适合对大数据量的数据进行清洗和合并。但是在实际的工作中,除了像前文介绍那样对数据进行合并清洗外,还涉及其他的Excel表格数据的处理,这些数据的处理相对来说比较繁琐。
我们GIS行业涉及非常多的外业数据调查相关的工作,这些类似的项目都是需要根据外业调查获取到的信息填写到内业的表格中。根据外业调查表,按照一定规则更新对应的内业表信息,逻辑非
2.Python xlwt 写入 操作Excel
3.Python xlutils 修改 操作Excel
4.Python xlwings 读取 写入 修改 操作Excel
5.Python openpyxl 读取 写入 修改 操作Excel
6.Python xlswriter 写入 操作Excel
7.Python win32com 读取 写入 修改 操作Excel
8.Python pandas 读取 写入 操作Ex
当涉及到操作Excel文件时,Python提供了多种库和工具,其中包括openpyxl、xlrd、xlwt和pandas。这些库都有自己的特点和用法,可以根据需求选择适合的工具来进行Excel文件的读取和写入操作。本文将分别介绍openpyxl、xlrd、xlwt和pandas这四个库的使用方法,并提供相应的示例代码,帮助读者快速上手。
Python中有大量的原生和第三方 Excel 操作包OpenPyXL是个读写 Excel 2010 xlsx/xlsm/xltx/xltm 的 Python 库,简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点xlwings。
想要了解如何使用 openpyxl 库处理 Excel 数据和表格吗?本文将为您提供详细的基础知识指导,包括读取、写入和修改 Excel 文件,添加和删除工作表,操作单元格数据等。通过这个完整指南,您将快速掌握 openpyxl 库的使用并提升您的 Excel 处理技能。
openpyxl是一个专门用于处理Excel文件的Python库,支持读取和写入Excel文件,还支持Excel文件中的图表和公式等功能。:这是两个Python库,分别用于读取和写入Excel文件,它们使用简单,但是不支持Excel文件中的图表和公式等功能。xlutils是一个基于xlrd和xlwt的Python库,提供了一些额外的功能,比如复制工作表、添加新的工作表等。XlsxWriter是一个用于创建Excel文件的Python库,它提供了丰富的API,支持格式化、插入图片等功能。
大家好,我是早起。
在之前的办公自动化系列文章中,我已经对Python操作Excel的几个常用库openpyxl、xlrd/xlwt、xlwings、xlsxwriter等进行了详细的讲解。
为了进一步带大家了解各个库的异同,从而在不同场景下可以灵活使用,本文将横向比较7个可以操作 Excel 文件的常用模块,在比较各模块常用操作的同时进行巩固学习!
xlrd、xlwt、xlutils 各自的功能都有局限性,但三者互为补充,覆盖了Excel文件尤其是 .xls 文件的操作。xlwt 可以生成 .x