【发布时间】:2021-03-21 00:05:18
【问题描述】:
我想读取最后一行温度(即 24.925)。我的数据格式如下.csv格式
Date Temp RH
2020-12-07 14:00:00 24.5198601667 66.9861108333
2020-12-07 15:00:00 24.9940271667 64.4736103333
2020-12-07 16:00:00 24.925 65
我正在关注给定的代码:
from collections import deque
import csv
def get_last_row(csv_filename):
with open(csv_filename, 'rb') as f:
return deque(csv.reader(f), 1)[0]
lastline = ', '.join(get_last_row('data.csv'))
values = lastline.split("\t")
print ((values[1]))
任何建议都会有所帮助。 提前谢谢你。
【问题讨论】:
-
“迭代器应该返回字符串,而不是字节(您是否以文本模式打开文件?)”有什么不清楚的地方?您是否尝试过按照错误消息提示以文本模式打开文件?
-
我不明白用逗号加入然后用制表符拆分的目的。您的数据中没有任何选项卡。您的示例数据不是 CSV 格式 - 它真的是制表符分隔的文件吗?
-
谢谢。我在 txt 中尝试过,但显示的是整行。我只想要温度值...
-
如果“data.csv”真的是逗号分隔,那么最终温度将是
get_last_row("data.csv")[1]。 CSV 模块会为您拆分列。不需要标签拆分部分。如果它是一个制表符分隔的文件,那么csv.reader(f, dialect=csv.excel_tab)可能会起作用。但是您向我们展示的数据是某种数据的扩展视图——也许是您从显示 pandas 数据框获得的。你能发布实际的 CSV 文件内容吗?