【发布时间】:2018-12-15 11:56:13
【问题描述】:
我需要打包数据并导出到 csv 文件,以及读取该 csv 文件并解码数据。
这是我打包数据的代码
from struct import *
raw_data = [[76.94,76.944,76.945],[76.97,76.979,76.980],[77.025,77.025,77.025]]
for data in raw_data:
binary_format = pack('fff',raw_data[0][0],raw_data[0][1],raw_data[0][2])
print(binary_format)
list_data = [binary_format]
with open('samples.csv','a') as csvFile:
writer=csv.writer(csvFile,delimiter=',',quoting=csv.QUOTE_MINIMAL)
writer.writerows(list_data)
csvFile.close()
这是用于解码数据。
import csv
from struct import *
formater = 'fff'
with open('samples.csv', 'rb') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
print(unpack(formater,row[0].encode('UTF-8')))
csvFile.close()
以下错误是
struct.error: unpack 需要一个长度为 32 的字节对象
这样的异常输出
76.94,76.944,76.945
76.97,76.979,76.980
77.025,77.025,77.025
【问题讨论】:
-
unpack用于解析二进制数据。你有一个常规的 CSV - 文本 - 文件,以空格作为分隔符。 -
抱歉忘记删除多余的空间
-
我已经更新了问题
-
@muthu 为什么要写成二进制?
-
内存使用问题是一个原因
标签: python-3.x csv