Python学习之几种存取xls/xlsx文件的方法

来源:互联网 发布:局域网网络监控工具 编辑:程序博客网 时间:2024/06/03 20:23

想在深度学习程序运行时动态存下来一些参数。

存成Excel文件查看方便,就查了几种方法,做个测试。因为我平常也不怎么用 Excel,简单的存取数据就够了。

xlwt/xlrd库 存Excel文件:(如果存储数据中有字符,那么写法还有点小小的变化)

import xlwtworkbook = xlwt.Workbook(encoding='utf-8')booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)#存第一行cell(1,1)和cell(1,2)booksheet.write(0,0,34)booksheet.write(0,1,38)#存第二行cell(2,1)和cell(2,2)booksheet.write(1,0,36)booksheet.write(1,1,39)#存一行数据rowdata = [43,56]for i in range(len(rowdata)):    booksheet.write(2,i,rowdata[i])workbook.save('test_xlwt.xls')

读Excel文件:(同样是对于数值类型数据)

import xlrdworkbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')print(workbook.sheet_names())                  #查看所有sheetbooksheet = workbook.sheet_by_index(0)         #用索引取第一个sheetbooksheet = workbook.sheet_by_name('Sheet 1')  #或用名称取sheet#读单元格数据cell_11 = booksheet.cell_value(0,0)cell_21 = booksheet.cell_value(1,0)#读一行数据row_3 = booksheet.row_values(2)print(cell_11, cell_21, row_3)>>>34.0 36.0 [43.0, 56.0]

openpyxl 库 存Excel文件:

from openpyxl import Workbook workbook = Workbook()booksheet = workbook.active     #获取当前活跃的sheet,默认是第一个sheet#存第一行单元格cell(1,1)booksheet.cell(1,1).value = 6   #这个方法索引从1开始booksheet.cell("B1").value = 7#存一行数据booksheet.append([11,87])workbook.save("test_openpyxl.xlsx")

读Excel文件:

from openpyxl import load_workbook workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx')#booksheet = workbook.active                #获取当前活跃的sheet,默认是第一个sheetsheets = workbook.get_sheet_names()         #从名称获取sheetbooksheet = workbook.get_sheet_by_name(sheets[0])rows = booksheet.rowscolumns = booksheet.columns#迭代所有的行for row in rows:    line = [col.value for col in row]#通过坐标读取值cell_11 = booksheet.cell('A1').valuecell_11 = booksheet.cell(row=1, column=1).value
原理上其实都一样,就写法上有些差别。


其实如果对存储格式没有要求的话,我觉得存成 csv文件 也挺好的:

import pandas as pdcsv_mat = np.empty((0,2),float)csv_mat = np.append(csv_mat, [[43,55]], axis=0)csv_mat = np.append(csv_mat, [[65,67]], axis=0)csv_pd = pd.DataFrame(csv_mat)csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False)
因为它读起来非常简单:

import pandas as pdfilename = "D:\\Py_exercise\\test_pd.csv"csv_data = pd.read_csv(filename, header=None)csv_data = np.array(csv_data, dtype=float)



阅读全文
0 0
原创粉丝点击