You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用STDF2DataFrame转换93k测试仪STDF至Pandas时触发TypeError

93k测试仪STDF文件转Pandas DataFrame报错处理

复现代码

import sys, os
from pystdf.Importer import STDF2DataFrame
import pystdf.V4 as V4
import pandas as pd

fin = 'Ex.stdf'
dfs= STDF2DataFrame(fin)

报错信息

回溯(最近的调用最后):
  文件 "C:\Users\user\Documents\Temp\module2.py", 第10行, in <module>
    dfs= STDF2DataFrame(fin)
         ^^^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\Importer.py", 第73行, in STDF2DataFrame
    data = ImportSTDF(fname)
           ^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\Importer.py", 第42行, in ImportSTDF
    p.parse()
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第190行, in parse
    self.parse_records(count)
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第162行, in parse_records
    fields = recParser(self, header, [])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第36行, in newRecordParser
    fields.append(action(*args))
                  ^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第202行, in <lambda>
    return lambda self, header, fields: parseFn(header, fieldType)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第238行, in <lambda>
    "Vn": lambda header, fmt: self.readVn(header)
                              ^^^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第115行, in readVn
    vn.append(self.vnMap[fldtype](header))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  文件 "C:\Anaconda\Lib\site-packages\pystdf\IO.py", 第246行, in <lambda>
    0: lambda header: self.inp.read(header, 1),
                      ^^^^^^^^^^^^^^^^^^^^^^^^
类型错误:read方法最多接受1个参数,但传入了2个

问题分析与解决办法

这个错误源于pystdf库的IO模块中,错误地给文件对象的read方法传入了两个参数,而Python标准文件对象的read仅接受1个参数(指定读取字节数)。

可行的解决途径:

  • 降级pystdf版本:该问题多为版本兼容性问题,执行pip install pystdf==1.0.0安装稳定版本即可解决
  • 修改库源码:找到Anaconda环境下pystdf的IO.py文件(路径如报错信息所示),将第246行的self.inp.read(header, 1)改为self.inp.read(1),这里的header参数实际无作用,仅需读取1字节
  • 替换兼容库:改用stdf或py-stdf等对93k测试仪STDF文件支持更好的库

内容的提问来源于stack exchange,提问作者Dima Mintsman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:37:03