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

numpy.loadtxt在1.23.4版本用多字符分隔符触发TypeError问题

numpy.loadtxt多字符分隔符版本兼容问题解决方法

在numpy 1.23.4及后续版本中,np.loadtxt不再支持多字符分隔符(如||),运行原代码会抛出TypeError: Text reading control character must be a single unicode character or None; but got: '||'错误,而numpy 1.22.4及更早版本可正常执行。

测试代码:

from io import StringIO
import numpy as np

csv_file = StringIO("""1||2
3||4
5||6
""")

print(np.loadtxt(csv_file, delimiter="||"))

解决方法

  • 使用numpy.genfromtxt替代loadtxt
    genfromtxt仍支持多字符分隔符,无需修改数据即可直接替换:

    from io import StringIO
    import numpy as np
    
    csv_file = StringIO("""1||2
    3||4
    5||6
    """)
    
    print(np.genfromtxt(csv_file, delimiter="||"))
    

    输出结果与旧版本loadtxt一致:

    [[1. 2.]
     [3. 4.]
     [5. 6.]]
    
  • 预处理数据替换分隔符
    将多字符分隔符替换为单字符(如逗号、单竖线),再用loadtxt加载:

    from io import StringIO
    import numpy as np
    
    csv_content = """1||2
    3||4
    5||6
    """
    # 替换多字符分隔符为单字符逗号
    processed_content = csv_content.replace("||", ",")
    csv_file = StringIO(processed_content)
    
    print(np.loadtxt(csv_file, delimiter=","))
    

    注意替换的字符需避免与数据内容冲突。

  • 降级numpy版本(不推荐)
    若需保持原代码不变,可临时降级到1.22.4版本:

    pip install numpy==1.22.4
    

    此方法会错过新版本的bug修复与功能更新,仅作为临时应急方案。

内容的提问来源于stack exchange,提问作者Alexander L. Hayes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:15:34