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

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

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

xlwt/xlrd库 

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


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

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

 


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

openpyxl 库

存Excel文件:

 


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


②读Excel文件:


 
 
  1. from openpyxl import load_workbook
  2. workbook = load_workbook( 'D:\\Py_exercise\\test_openpyxl.xlsx')
  3. #booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
  4. sheets = workbook.get_sheet_names() #从名称获取sheet
  5. booksheet = workbook.get_sheet_by_name(sheets[ 0])
  6. rows = booksheet.rows
  7. columns = booksheet.columns
  8. #迭代所有的行
  9. for row in rows:
  10. line = [col.value for col in row]
  11. #通过坐标读取值
  12. cell_11 = booksheet.cell( 'A1').value
  13. cell_11 = booksheet.cell(row= 1, column= 1).value

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

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

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


 
 
  1. import pandas as pd
  2. csv_mat = np.empty(( 0, 2),float)
  3. csv_mat = np.append(csv_mat, [[ 43, 55]], axis= 0)
  4. csv_mat = np.append(csv_mat, [[ 65, 67]], axis= 0)
  5. csv_pd = pd.DataFrame(csv_mat)
  6. csv_pd.to_csv( "test_pd.csv", sep= ',', header= False, index= False)

因为它读起来非常简单:


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

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值