python科研向数据处理篇——批量向Excel写入数据
python科研向数据处理篇——批量向Excel写入数据
项目背景
实验数据为电流值,由AD采集模块通过串口发送至上位机保存为txt文本,有多组实验,每组实验保存在一个文本文件中,现需要将所有数据综合至一个Excel表格中做后续分析,单独操作每个文件费时费力,只能再次祭出python大法开挂,哈哈!python牛逼!
数据为16组实验,每组实验重复两次,共32组数据:命名方式如下: 其中文件名含有(processed)的数据为处理过的有效数据,同名其他文件为采集原数据和处理过程数据,数据处理同样使用python,在另一篇文章中我会详述处理过程,此处直接使用有效数据。数据内容如图: 每行一个电流值,每组实验约有数万条数据。 要做的工作就是把这32组实验的电流按列存入同一个excel中,用于后续分析使用。OK,目标明确,开工!
基础
经过简单查找资料,python操作excel的库有很多,但本项目只需要写入功能,有两个库简单易用——xlwt和XlsxWriter,操作方法类似,这里选择XlsxWriter,支持写入 .xlsx 格式文件。
安装
pip install XlsxWriter
基础操作代码概览
import xlsxwriter workbook = xlsxwriter.Workbook(hello.xlsx) # 建立一个excel文件 worksheet = workbook.add_worksheet() # 向文件中添加一个sheet表格 worksheet.write(A1, Hello world) # 向表格中写入内容 workbook.close() # 关闭表格并保存
执行后,自动生成了hello.xlsx文件,打开如图: 相当简单是不是,其余的就是按要求循环写入数据了。
加亿点点细节
import xlsxwriter
from os import listdir, getcwd
path = getcwd().split(\)[-1]
print("当前文件夹: " + path)
# 建立一个excel文件和工作表
workbook = xlsxwriter.Workbook(f{
path}有效电流数据汇总.xlsx)
current = workbook.add_worksheet(电流数据)
current_statistics = workbook.add_worksheet(统计数据)
# 预设写入格式
num = workbook.add_format({
num_format: 0.000})
bold = workbook.add_format({
bold: True})
# 读取配置文件,用于统计计算
with open(../进给速度.txt, r) as f:
speed = f.read().strip().split()
col = 0
for i in listdir():
# 获取有效数据文件列表
if (processed).txt in i:
print("开始处理: " + i)
# 读取txt数据并转换成列表储存
with open(i, r) as t:
data = t.read().strip().split()
print("数据长度: ", len(data))
row = 0
# 简单统计
current_statistics.write(row, col, i[:-15], bold)
current_statistics.write(row + 1, col, len(data))
current_statistics.write(
row + 2, col, len(data) / 27000 * int(speed[col][-2:]), num)
current.write(row, col, i[:-15], bold) # 写表头
# 向表格中写入全部数据
for d in data:
row += 1
current.write(row, col, d)
# break
col += 1
workbook.close() # 关闭表格并保存
执行结果如下:
完成!后续就可以方便的进行数据处理了,Nice!
参考资料
XlsxWriter官方文档: 其他大神的翻译文档:
