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

读取CSV最后一行温度值报错:迭代器应返回字符串而非字节,求解决

解决读取CSV最后一行温度值时的字节/字符串错误问题

这个错误的根源很明确:你用**二进制模式('rb')**打开了CSV文件,但csv.reader需要处理的是文本模式下的字符串输入,二进制模式返回的是字节对象,所以触发了这个报错。

咱们直接修正代码,同时还能简化后续的处理步骤——你原来的join再split完全是多余的,csv.reader本身就会帮你把每行拆分成列表:

from collections import deque
import csv

def get_last_row(csv_filename):
    # 改成文本模式打开文件(去掉模式里的b)
    with open(csv_filename, 'r') as f:
        # 明确指定分隔符为空格(你的数据是空格分隔),确保解析准确
        return deque(csv.reader(f, delimiter=' '), 1)[0]

last_row = get_last_row('data.csv')
# 温度值是行里的第2个元素(索引从0开始)
print(last_row[1])

额外说明:

  • 如果你的CSV实际是用制表符(\t)分隔的,只需要把delimiter=' '改成delimiter='\t'就行。
  • 你用deque只保留最后一行的思路非常高效,不用加载整个文件到内存,适合处理大CSV文件。

内容的提问来源于stack exchange,提问作者Veenita Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:35:09