道招

小米运动健康运动记录csv文件转成fit和tcx文件终于不用分段了

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

小米运动健康运动记录csv文件转成fit和tcx文件终于不用分段了

运动记录转换工具 是在2023年12月23日开始支持将小米运动健康导出来的csv文件转换格式成fit和tcx格式,然后导入高驰佳明等平台的。

其实本人是原计划是春节期间闲暇时着手编码支持小米运动健康的,毕竟小米系的运动记录导出的细节数据不多,只有单条运动的概要信息和心率信息,导致实际的转换效果并不是太少,可能跟一些没有仔细看说明的跑友的预期有些不符,这个也是没办法的事情,只能期待小米啥时候能导出更多详细信息了。

2023年12月的时候本人挡不住几个跑友的强烈要求和支持鼓励,挤出时间花了几个晚上来编码支持小米运动健康了,整体进度提前了。其实还是有不少跑友(比如本人)的第一款手表或者手环是小米系的,加上现在小米主推的导出数据副本的方式就是从小米官网导出(可参考教程小米运动健康运动记录导出),所以支持肯定是会支持的,能提早支持肯定更好啦。

导出的小米健康运动记录是全量数据,这就导致拿到的数据文件会特别大,准确说是XXX_MiFitness_hlth_center_fitness_data.csv这个文件太大了,动不动就300M以上,里面的记录条数达到200W行以上,虽然不少数据记录并不是运动期间产生的,对运动记录转换并没有实质性用处,但是想用删除或过滤掉还是很麻烦的。

其实这么大的csv文件,用Excel软件打开都费劲,直接会提示“文件为完全加载”,这是因为Excel只能打开1048576(2^20)行。

在用程序处理这些数据的时候也很麻烦,很多工具库都不好使了,所以当时我只能先采用了手工分段的办法,将过大的XXX_MiFitness_hlth_center_fitness_data.csv文件分成好几段,每段都不超过1048576行,同时要保证每个分段的csv文件都是在0点附近分段的,因为里面写的是时间戳数据,并不是对用户友好的年月日时分秒格式,所以手工分段起来很费劲的。但是写了一篇告知原因的文章 为什么小米运动健康文件可能需要分段

这个周末想试着改用流的方式读取csv文件,经过调用终于找到了一个不用分段的方法了,就是用csv-parser,逐行读取数据然后将它们暂存起来,然后待结束后拿到全部数据了。

官方给的demo代码如下:

const csv = require('csv-parser')
const fs = require('fs')
const results = [];

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log(results);
    // [
    //   { NAME: 'Daffy Duck', AGE: '24' },
    //   { NAME: 'Bugs Bunny', AGE: '22' }
    // ]
  });

改用流读取文件的方式,即使是一个320W+行的csv文件也没问题,再也不用担心小米运动健康的文件太大了,自己也不用手动进行分段了,不但省力了还能避免人工操作的失误风险。

更新时间:
上一篇:运动记录转换工具怎么支持转换华为的跳绳记录到佳明的下一篇:tcx格式的运动记录文件优缺点,怎么能转换tcx文件

相关文章

oppo手机通讯录格式 csv 制作

昨天没事干想换老婆的oppo手机用用,功能简单、省电!比android手机要省电多了,现在上班也没时间玩android里面的游戏,用oppo正好。 oppo的通讯录.csv格式很简单,主要有 姓名、移 阅读更多…

【转载】tcx文件和fit文件支持哪些运动类型

本文源自 运动记录转换工具 的 tcx文件和fit文件支持哪些运动类型 华为运动健康、小米运动健康和Zepp Life 三个app导出的历史运动数据要想导入到其它运动平台就需要进行转换,转换成 阅读更多…

oppo手机通讯录玩法

OPPO目前推出的两款手机A103和A109在使用上有一些特色的地方,现在将我试玩OPPO手机这两个月来的一些使用经验写下来,与大家一起分享下。 电话本导入导出   阅读更多…

关注道招网公众帐号
友情链接
消息推送
道招网关注互联网,分享IT资讯,前沿科技、编程技术,是否允许文章更新后推送通知消息。
允许
不用了