有关方面的博客我再网上无法搜索到,所以我写了这篇博客供大家参考借鉴。原因是我的mf4文件中有attachments附件集合,我想通过代码去读取我的attachments里面的文件内容。
首先推荐两个比较好的库,一个是mdfreader, 一个是asammdf。这两个库都可以去访问attachments。
from asammdf import MDF
import mdfreader
#method1
mdf = MDF('your file')#传入你的文件地址
#mdf有好多函数,我就不一一介绍了,例如info()查看信息,channel_db()查看通道信息,
for i,attachment in enumerate(mdf.attachments):#这里面attachments就是mf4的attachmets
print(f'Attachment {i}:')# 打印编号
print(f' Comment: {attachment.comment}')
print(f' File name: {attachment.file_name}') #打印名称
print(f' File name dir: {attachment.file_name_addr}')
print(f' addr: {attachment.address}')#打印地址
print(f' data: {attachment.embedded_data}')#打印文件里面内容
#如果是字节流,还可以解析attachment.embedded_data.decode("utf-8")
data, file_name, metadata = mdf.extract_attachmet(18)#可以通过这个编号索引去解析特定的文本
#method2,这个运行时间较长,因为会把所有的文件去解析
info = mdfreader.Mdf(path)
print(info.attachments)
#这里非常多内容,建议参考
[PyPi](https://pypi.com.cn/project/mdfreader/)