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

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

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

xlwt/xlrd库 

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

import xlwt

workbook = 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 xlrd

workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')
print(workbook.sheet_names())                  #查看所有sheet
booksheet = workbook.sheet_by_index(0)         #用索引取第一个sheet
booksheet = 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,默认是第一个sheet
sheets = workbook.get_sheet_names()         #从名称获取sheet
booksheet = workbook.get_sheet_by_name(sheets[0])

rows = booksheet.rows
columns = booksheet.columns
#迭代所有的行
for row in rows:
    line = [col.value for col in row]

#通过坐标读取值
cell_11 = booksheet.cell('A1').value
cell_11 = booksheet.cell(row=1, column=1).value

原理上其实都一样,就写法上有些差别。

-------------------------------------------------------------------------------------------------------

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

import pandas as pd

csv_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 pd

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

 

 

 

 

 

 

 

Pythonexcel库中,可以使用多种方法xls文件转换为xlsx文件。 一种常用的方法是使用openpyxl库。该库可以读取和写入xlsx文件,因此可以使用openpyxl.load_workbook()函数打开xls文件,然后使用save()函数将其保存为xlsx文件。示例如下: ```python import openpyxl # 打开xls文件 wb = openpyxl.load_workbook('file.xls') # 创建一个新的xlsx文件 new_wb = openpyxl.Workbook() # 将xls文件中的数据复制到xlsx文件 for sheetname in wb.sheetnames: sheet = new_wb.create_sheet(sheetname) for row in wb[sheetname].iter_rows(): sheet.append([cell.value for cell in row]) # 保存为xlsx文件 new_wb.save('file.xlsx') ``` 另一种方法是使用pandas库,它提供了丰富的数据处理功能。可以使用pandas的read_excel()函数打开xls文件,然后使用to_excel()函数将其保存为xlsx文件。示例如下: ```python import pandas as pd # 打开xls文件 df = pd.read_excel('file.xls') # 保存为xlsx文件 df.to_excel('file.xlsx', index=False) ``` 除了以上两种方法,还可以使用xlrd和xlwt库进行转换。可以使用xlrd.open_workbook()函数打开xls文件,然后使用xlwt.Workbook()函数创建一个新的xlsx文件,使用xlwt中的write()函数将数据逐行写入xlsx文件,最后使用save()函数保存xlsx文件。示例如下: ```python import xlrd import xlwt # 打开xls文件 wb = xlrd.open_workbook('file.xls') # 创建一个新的xlsx文件 new_wb = xlwt.Workbook() # 将xls文件中的数据复制到xlsx文件 for sheetname in wb.sheet_names(): sheet = new_wb.add_sheet(sheetname) for row in range(wb.sheet_by_name(sheetname).nrows): for col in range(wb.sheet_by_name(sheetname).ncols): sheet.write(row, col, wb.sheet_by_name(sheetname).cell(row, col).value) # 保存为xlsx文件 new_wb.save('file.xlsx') ``` 总之,根据实际需求,可以选择适合的方法xls文件转换为xlsx文件
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值