Python中fitdecode库读取FIT文件的错误处理配置问题
处理FIT文件时fitdecode库error_handling参数的正确配置方式
我用Python处理跑步、骑行类运动记录的FIT文件,使用fitdecode库读取时基础功能正常,但配置错误处理参数时遇到问题。
基础正常代码
参考官方示例的基础读取代码:
import fitdecode with fitdecode.FitReader('464491592495955971.fit') as fit: for frame in fit: # 生成的frame对象类型包括: # * fitdecode.FitHeader (FIT_FRAME_HEADER) # * fitdecode.FitDefinitionMessage (FIT_FRAME_DEFINITION) # * fitdecode.FitDataMessage (FIT_FRAME_DATA) # * fitdecode.FitCRC (FIT_FRAME_CRC) if frame.frame_type == fitdecode.FIT_FRAME_DATA: # FitDataMessage包含可直接使用的解码后数据 print(frame.name)
错误的参数配置尝试
我尝试了三种写法配置error_handling参数,均无效:
fitdecode.FitReader('464491592495955971.fit', error_handling=0) fitdecode.FitReader('464491592495955971.fit', error_handling='IGNORE') fitdecode.FitReader('464491592495955971.fit', error_handling=IGNORE)
以上写法均触发断言错误:
File ~/Documents/Python/Environment/lib/python3.13/site-packages/fitdecode/reader.py:164, in FitReader.__init__(self, fileish, processor, check_crc, error_handling, keep_raw_chunks, data_bag) 161 check_crc = CrcCheck.DISABLED 163 assert isinstance(check_crc, CrcCheck) --> 164 assert isinstance(error_handling, ErrorHandling) 166 # modifiable options (public) 167 self.check_crc = check_crc
正确配置方式
从错误信息可知,error_handling参数要求传入**fitdecode.ErrorHandling枚举类的成员**,而非数字、字符串或未定义变量。
两种实现方式
方式1:单独导入枚举类
import fitdecode from fitdecode import ErrorHandling with fitdecode.FitReader('464491592495955971.fit', error_handling=ErrorHandling.IGNORE) as fit: for frame in fit: if frame.frame_type == fitdecode.FIT_FRAME_DATA: print(frame.name)
方式2:直接使用完整路径引用
import fitdecode with fitdecode.FitReader('464491592495955971.fit', error_handling=fitdecode.ErrorHandling.IGNORE) as fit: for frame in fit: if frame.frame_type == fitdecode.FIT_FRAME_DATA: print(frame.name)
常用枚举成员说明
ErrorHandling.RAISE:遇到错误直接抛出异常(默认行为)ErrorHandling.IGNORE:忽略错误,继续处理后续内容ErrorHandling.LOG:记录错误信息,但不中断处理流程
内容的提问来源于stack exchange,提问作者GrafZ4hl
相关产品推荐
相关产品推荐

