8

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

 8 months ago
source link: https://www.daozhao.com/11063.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

小米运动健康运动记录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)行。

20240107100252.png

在用程序处理这些数据的时候也很麻烦,很多工具库都不好使了,所以当时我只能先采用了手工分段的办法,将过大的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' }
    // ]
  });
20240107102413.png

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

更新时间:2024-01-07 18:26

oppo手机通讯录玩法

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

电话本导入导出

 

阅读更多…

oppo手机通讯录格式 csv 制作

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK