如何通过Python将.FIT转成.CSV?
如何实现将 .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)
通过Excel等表格软件打开,
检查时候格式正确
(通常以标准数据表样式呈现,包含表头和数据等元素)。
(图2)