如何实现将 .fit格式(运动原始数据)转换成 .csv(可以通过Excel等工具访问的格式)?
本篇将通过Python工具实现。(非官方教程,仅供参考,欢迎指正)。

虽然Garmin已经开源了"FIT SDK"和"FIT to CSV"工具,资料也可以在官网找到
(FIT-SDK官网),但对于没有代码经验的爱好者上手成本较高。

如果您电脑中已经安装有python解释器(Python官网),则可以直接通过如下方案实现将 .fit格式文件转换成 .csv文件(更便于前端工具访问,如Excel等)。


第一步:

下载本站示例代码fit2csv.zip解压缩到本地目录,
或将如下示例代码贴入个人熟悉的编辑器,保存到自定义目录下。

示例代码如下:


#在终端执行如下命令安装依赖库
#pip install fitparse pandas

import os
import fitparse
import pandas as pd

def fit_to_csv(fit_file_path, csv_file_path):
    """将单个 .fit 文件转换为 .csv 文件"""
    # 加载 FIT 文件
    fitfile = fitparse.FitFile(fit_file_path)

    # 创建一个空的列表来存储数据
    data = []

    # 遍历 FIT 文件中的所有记录
    for record in fitfile.get_messages("record"):
        record_data = {}
        for field in record:
            record_data[field.name] = field.value
        data.append(record_data)

    # 将数据转换为 DataFrame
    df = pd.DataFrame(data)

    # 将 DataFrame 保存为 CSV 文件
    df.to_csv(csv_file_path, index=False, encoding='utf-8')
    print(f"文件 {fit_file_path} 已成功转换为 {csv_file_path}")

def convert_all_fit_to_csv(directory):
    """将目录下所有 .fit 文件转换为 .csv 文件"""
    # 遍历目录下的所有文件
    for filename in os.listdir(directory):
        # 检查文件是否为 .fit 文件
        if filename.endswith(".fit"):
            # 构建完整的文件路径
            fit_file_path = os.path.join(directory, filename)
            # 生成对应的 .csv 文件名
            csv_file_path = os.path.join(directory, filename.replace(".fit", ".csv"))
            # 调用转换函数
            fit_to_csv(fit_file_path, csv_file_path)

# 示例用法
directory_path = "files"  # 替换为你的 .fit 文件所在目录
convert_all_fit_to_csv(directory_path)

第二步:

在fit2csv.py的目录下,新建子文件夹,并放入待转换格式的.fit文件(如下示例用demo.fit)

./
├── files/
│   └── demo.fit
└── fit2csv.py

第三步:

双击运行fit2csv.py,
Python程序运行会有短时间弹窗,
稍等片刻,待窗口小时候,files目录下会多出一个与.fit文件名对应的.csv文件。

./
├── files/
│   ├── demo.csv
│   └── demo.fit
└── fit2csv.py

第三步:

检查转换结果:

在本地目录中找到.csv文件(如图1),


图1

(图1)


通过Excel等表格软件打开,
检查时候格式正确
(通常以标准数据表样式呈现,包含表头和数据等元素)。

图2

(图2)




<- 本篇完 ->

标签: 数据, Python

添加新评论