Excel:
创建excel文件并写入数据:
import xlwt
# 创建一个Workbook,设置编码为utf-8,默认编码为ascii
wb = xlwt.Workbook(encoding = 'utf-8')
# 创建一个worksheet,表名为'test1'
ws = wb.add_sheet('test1')
# 写入excel数据,参数为行row,列col,值value
ws.write(0, 0, 30)
ws.write(1, 1, 31)
ws.write(2, 2, 32)
# 保存excel文件
wb.save('./test.xls')
excel读取文件:
import xlrd
# 读取excel文件
wb = xlrd.open_workbook('./test.xls')
# 获取一个excel有多少个sheet
sheets = list(wb.sheet_names())
# 获取第一个sheet
worksheet = wb.sheet_by_name(sheets[0])
for i in range(0, worksheet.nrows):
for j in range(0, worksheet.ncols):
# 逐行逐列读取数据
print(worksheet.cell_value(i, j), "\t", end="")
excel追加写入数据:
import xlwt
import xlwd
import xlutils.copy
wb = xlrd.open_workbook('./test.xls')
worksheet = wb.sheet_by_index(0)
# 获取sheet的行数
old_rows = worksheet.nrows
# 将xlrd拷贝转换为xlwt
new_wb = xlutils.copy(wb)
# 获取转换后的第一个表格
new_ws = new_wb.get_sheet(0)
nums = [33, 34, 35]
for num in nums:
new_ws.write(old_rows, old_rows, num)
old_rows += 1
new_wb.save('./test.xls')
对于Tensor数据写入excel,应先将tensor转换为numpy:
path = './test_res.xls'
la_re = labels.cpu().detach().numpy().reshape(-1, 1)
so_re = so_re.cpu().detach().numpy()
cat_max = np.argmax(so_re, axis=1).reshape(-1, 1)
la_re = np.hstack((la_re, cat_max))
value = np.hstack((la_re, so_re))
write_excel_xls_append(path, value)