数据分离 - 从Excel中读取数据
日常操作
python
import xlrd
wb = xlrd.open_workbook("interface_test.xlsx")
# 读取sheet名称
sheet_names = wb.sheet_names()
print(sheet_names)
# 获取当前的sheet片
sheet1 = wb.sheet_by_name("Sheet1")
# 获得当前sheet的行数
print(sheet1.nrows)
# 获得当前sheet的列数
print(sheet1.ncols)
# 获得当前excel中的值(第二行,第二列)
print(sheet1.cell_value(1, 1))
# 获得当前excel中的值(第一行)
print(sheet1.row_values(0))
# 获得当前excel中的值(第一列)
print(sheet1.col_values(0))
读取excel文件中的内容并且封装成list嵌套dict格式的数据
python
import xlrd
# 读取excel文件,进行数据封装
def read_excel():
wb = xlrd.open_workbook("interface_test.xlsx")
sheet1 = wb.sheet_by_name("Sheet1")
# 拿到当前的title部分
row_head = sheet1.row(0)
list = []
for i in row_head:
list.append(i.value)
# 拿到title以下的部分,不要head了,从1开始,外部封装到list当中
list_content = []
for i in range(1, sheet1.nrows):
# 创建一个字典,封装每一行的数据
dict = {}
for j in range(0, sheet1.ncols):
# 进行字典的封装
dict.setdefault(list[j], sheet1.cell_value(i, j))
list_content.append(dict)
return list_content
if __name__ == '__main__':
list = read_excel()
print(list)
增加log功能
python
import logging
logging.basicConfig(level=logging.INFO, # log level
format='[%(asctime)s] %(levelname)s [%(funcName)s: %(filename)s, %(lineno)d] %(message)s', # log格式
datefmt='%Y-%m-%d %H:%M:%S', # 日期格式
filename='log.txt', # 日志输出文件
filemode='a') # 追加模式
if __name__ == '__main__':
logging.info("hello")
logging.info("可以用中文啊")
logging.info("用debug方式来完成ttttt")
logging.critical("JJ林俊杰")
Log Level:
- CRITICAL: 用于输出严重错误信息
- ERROR: 用于输出错误信息
- WARNING: 用于输出警示信息
- INFO: 用于输出一些提升信息
- DEBUG: 用于输出一些调试信息
优先级 CRITICAL > ERROR > WARNING > INFO > DEBUG 指定level = logging.DEBUG
所有等级大于等于DEBUG的信息都会输出 若指定level = logging.ERROR
WARNING,INFO,DEBUG小于设置级别的信息不会输出
日志格式:
- %(levelno)s: 打印日志级别的数值
- %(levelname)s: 打印日志级别名称
- %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
- %(filename)s: 打印当前执行程序名
- %(funcName)s: 打印日志的当前函数
- %(lineno)d: 打印日志的当前行号
- %(asctime)s: 打印日志的时间
- %(thread)d: 打印线程ID
- %(threadName)s: 打印线程名称
- %(process)d: 打印进程ID
- %(message)s: 打印日志信息
综合excel和log日志完成打印信息:
python
import logging
import xlrd
logging.basicConfig(level=logging.INFO, # log level
format='[%(asctime)s] %(levelname)s [%(funcName)s: %(filename)s, %(lineno)d] %(message)s', # log格式
datefmt='%Y-%m-%d %H:%M:%S', # 日期格式
filename='../log/log.txt', # 日志输出文件
filemode='a') # 追加模式
# 读取excel文件,进行数据封装
def read_excel():
wb = xlrd.open_workbook("../data/interface_test.xlsx")
sheet1 = wb.sheet_by_name("Sheet1")
# 拿到当前的title部分
row_head = sheet1.row(0)
list = []
for i in row_head:
list.append(i.value)
# 拿到title以下的部分,不要head了,从1开始,外部封装到list当中
list_content = []
for i in range(1, sheet1.nrows):
# 创建一个字典,封装每一行的数据
dict = {}
for j in range(0, sheet1.ncols):
# 进行字典的封装
dict.setdefault(list[j], sheet1.cell_value(i, j))
list_content.append(dict)
return list_content
# 创建log信息
def create_log():
list = read_excel()
for i in list:
logging.info("编号:{0}".format(i.get("No")))
logging.info("url:{0}".format(i.get("url")))
if __name__ == '__main__':
create_log()