1、使用python获取csv文本的某行或某列数据
2、Python使用struct处理二进制
3、struct — 将字节串解读为打包的二进制数据
例子:
将一个.csv文件中的数据转为16进制写入.raw文件中
解答:
虽然是转为16进制,其实只要将数据转为数字(int,floate都可以)以二进制的方式写入文件中即可
```python
import csv
import struct
import numpy as np
def csv_to_raw(inPath,outPath):
outFile = open( outPath + '.raw','wb')#写入方式一定要用二进制写入
# 读取csv至字典
with open( inPath + ".csv",'r') as csvfile:
reader = csv.reader(csvfile)
rows= [row for row in reader] #rows中的数据是按行显示的[[1,2,3],[3,4,5]]
a = np.array(rows).shape[0] #行
b = np.array(rows).shape[1] #列
for i in range (a):
for j in range (b):
#.csv文件中rows[i][j]显示出来的值是字符串,例如"3458.",要转换为int值 3458
value = int(rows[i][j].split(".")[0])
# 将int类型的3458转为二进制流
# 因为整个.csv文件的值都是正数,所以可以用unsigned int pack
# I 表示unsigned int 占4个字节32位, >表示大端
result = struct.pack('>I',value )
#把二进制流写入文件中
outFile.write(result)
outFile.close()