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

Python3.7运行Python2代码报错:TypeError:需类字节对象而非'str'

解决CSV写入时的TypeError: a bytes-like object is required, not 'str'问题

问题根源

你用wb(二进制写入模式)打开CSV文件,但Python的csv.writer默认输出字符串内容,二进制模式要求写入字节对象,两者类型不匹配导致报错。

修复方案

把文件打开模式从wb改为w,同时指定编码(推荐utf-8),这是最简洁且符合csv模块设计逻辑的解决方式:

修改后的代码片段:

with open(save_dir + '/specs.csv', 'w', encoding='utf-8', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    if FLAGS.priv_agent:
        writer.writerow([0] + [PrivacyAgent.get_m(r) for r in range(len(Delta_accountant)-1)])
    else:
        writer.writerow([0] + [FLAGS.m]*(len(Delta_accountant)-1))
    writer.writerow(Delta_accountant)
    writer.writerow(Accuracy_accountant)

补充说明

  • 添加newline=''是csv模块的官方推荐写法,能避免不同操作系统下换行符出现异常。
  • 若坚持使用二进制模式(不推荐),需给csv.writer指定字节格式的换行符,但会增加代码复杂度,远不如文本模式省心。

内容的提问来源于stack exchange,提问作者Yi Eric

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:39:14