python读取mf4出现keyerror

本文详细介绍了在使用Python的asammdf模块读取mf4文件时遇到KeyError的常见原因及解决办法。包括检查变量名引号类型、确保变量名正确无误等步骤。
部署运行你感兴趣的模型镜像

这里写自定义目录标题


python当中使用asammdf模块读取mf4文件时,有时会出现系统报告keyerror的问题,对于这个问题其实可以从以下方面解决:
首先打开asammdf的gui直接读取对应的mf4查找目标变量,如果发现mf4中有,OK,检查你的变量名称这里的引号,如果是双引号,改成单引号试试,如果是单引号就反过来,这个问题好像是pycharm在Windows下运行的时候存在的一些bug(不知道为啥Windows环境下跑python时不时会出现一些很神奇的问题);
如果mf4里面没有,检查自己的变量名称书写(名称和大小写)是否正确,如果存在问题,改完再试试,如果还是不行,那就很明确了,系统找不到对应的变量名称,自然就会报告keyerror(keyerror是找不到key,不是书写错误,当然有时候也可能是书写错误笑哭 哭笑 笑出眼泪 破涕为笑 笑死 笑尿 笑cry)
以上就是我暂时总结的几种keyerror的情况,后面如果再发现了,我再补充

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

build.py... : error C0DE: Unknown fatal error when processing [/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/HelloWorldPkg/HelloWorld.inf] (Please send email to devel@edk2.groups.io for help, attaching following call stack trace!) (Python 3.6.9 on linux) Traceback (most recent call last): File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2708, in Main MyBuild.Launch() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2503, in Launch self._MultiThreadBuildPlatform() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2293, in _MultiThreadBuildPlatform Wa, self.BuildModules = self.PerformAutoGen(BuildTarget,ToolChain) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2157, in PerformAutoGen self.Progress File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 43, in __init__ self._InitWorker(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 114, in _InitWorker self.CollectPlatformGuids() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 167, in CollectPlatformGuids oriInfList = Platform.Modules File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/DscBuildData.py", line 754, in Modules Module.Guid = ModuleBuildData.Guid File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Common/caching.py", line 28, in __get__ Value = obj.__dict__[self._function.__name__] = self._function(obj) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/InfBuildData.py", line 377, in Guid self._GetHeaderInfo() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Common/caching.py", line 18, in CallMeHere Value = self._function(obj, *args,**kwargs) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/InfBuildData.py", line 193, in _GetHeaderInfo RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform] File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 242, in __getitem__ self.StartParse() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 261, in StartParse self.Start() File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 674, in Start self._SectionParser[self._SectionType](self) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 46, in MacroParser Parser(self) File "/home/duanxx/Tasks/mf20a-d/kl-d2000-new/source/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 745, in _SourceFileParser if self._Defines['BASE_NAME'] == 'Microcode': KeyError: 'BASE_NAME'
08-16
我们有一个复杂的任务:使用Python开发一个GUI应用程序,用于批量处理MF4数据文件中的多个指定信号,包括信号预处理(滤波、降噪)、根据选定信号的值筛选其他信号,然后进行数据分析(积分、均值、最大值、最小值、方差)。最后,用户可以通过GUI选择分析方法和配置筛选条件,并输出数值结果和图片。步骤分解:1.读取MF4文件:使用asammdf读取MF4文件,它支持MF4格式,并且能够高效地处理大型文件。2.信号选择:在GUI中允许用户选择多个信号进行处理。3.信号预处理:-滤波:使用低通、高通、带通等滤波器。我们可以使用scipy.signal中的滤波函数。-降噪:可以使用小波变换、滑动平均等方法。4.筛选:根据用户选定的某个信号的条件(例如,信号值大于某个阈值)来筛选数据,并将此筛选应用于其他信号。5.数据分析:对每个信号进行以下分析(用户可选择一种或多种):-积分(使用梯形法或类似方法)-均值-最大值-最小值-方差6.GUI界面:使用PyQt或Tkinter构建。需要包含以下组件:-文件选择(可以多选)-信号选择(多选)-预处理选项(滤波类型、参数;降噪方法、参数)-筛选条件配置(选择参考信号,设置条件,如大于、小于、介于等)-分析方法选择(复选框:积分、均值、最大值、最小值、方差)-运行按钮-结果显示区域(表格形式输出数值结果,并可导出图片)7.输出:数值结果可以导出为CSV,图片可以保存为PNG等格式。
06-05
使用Python开发一个完整的可运行的GUI应用程序,用于批量处理MF4文件中的多个指定信号,使用MDF的select方法仅读取需要的信号,对大文件使用MDF4格式的批处理模式,并且将多个MF4文件的指定信号按照一定顺序拼接成一个文件,后续对该文件进行处理,处理包括信号预处理(采样周期同步处理、滤波、降噪)、根据选定信号的特征(大小、范围、时间等)筛选其他信号,之后对筛选出的指定信号进行数据分析(积分、均值、最大值、最小值、方差)。最后,用户可以通过GUI选择分析方法和配置筛选条件,并输出数值结果和图片,具备信号对比功能及数据库存储历史记录,支持多文件批处理。最后对程序打包成exe执行文件。步骤分解:1.读取MF4文件:使用asammdf读取MF4文件,支持MF4格式,并且能够高效地处理大型文件,且能够对文件中的信号识别名称,并在后续的信号选择栏中以下拉框的形式供选择,也可以直接输入信号的关键字进行信号检索。2.信号选择:在GUI中允许用户选择一个或多个信号进行处理,且信号的名称可以手动输入检索以及下拉框的形式检索。3.信号预处理:-滤波:使用低通、高通、带通等滤波器。我们可以使用scipy.signal中的滤波函数。-降噪:可以使用小波变换、滑动平均等方法。4.筛选:根据用户选定的某个信号的条件(例如,信号值大于某个阈值)来筛选数据,并将此筛选应用于其他信号。5.数据分析:对每个信号进行以下分析(用户可选择一种或多种):-积分(使用梯形法或类似方法)-均值-最大值-最小值-方差6.GUI界面:使用PyQt或Tkinter构建。需要包含以下组件:-文件选择(可以多选)-信号选择(多选)-预处理选项(滤波类型、参数;降噪方法、参数)-筛选条件配置(选择参考信号,设置条件,如大于、小于、介于等)-分析方法选择(复选框:积分、均值、最大值、最小值、方差)-运行按钮-结果显示区域(表格形式输出数值结果,并可导出图片)7.输出:数值结果可以导出为CSV,图片可以保存为PNG等格式。
06-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值