一、先放转后的文件效果图
以55*55的图片csv文件为例子,经过代码处理后每一行为一张图片
二、上代码
以读取400张55*55的csv文件为例
注意:如果电脑转的数据过大导致过慢,或者显示报错数据超出列表长度,可以注释掉主函数中pixe(p_array),再修改save的循环参数,分成若干份转换数据,这样速度会更快
import csv
def array(a_name):
with open('../data/csv_data/' + a_name + '.csv') as f: # 读取文件
reader = csv.reader(f) # 创建阅读器
rows = [row for row in reader] # 按行读取
# print(rows[0]) # 打印第0行,此时读取的数据类型为列表
Array = []
# 此处需要按照csv文件中图片矩阵大小修改range中参数
for i in range(55):
a = rows[i]
for j in range(55):
b = int(a[j])
Array.append(b)
return Array
def pixe(p_array):
# open中为处理后储存路径
with open("../data.csv", "w",newline='') as csvfile:
writer = csv.writer(csvfile)
# 先写入columns_name
writer.writerow(p_array)
def save(Array):
with open("../data.csv", "a",newline='') as csvfile:
writer = csv.writer(csvfile)
# 写入多行用writerows,写入单行用writerow
writer.writerow(Array)
if __name__ == '__main__':
# 计算图片的一维元素个数,生成第一行index(此处为像素点编号)
# 按照不同图片的大小需要修改range中参数(此处为55*55=3025)
p_array = []
for j in range(1, 3026):
b1 = 'pixe' + str(j)
p_array.append(b1)
pixe(p_array)
# 修改range中参数为需要读取的文件个数(此处读取400个csv文件)
for b in range(0,400):
a_name = str(b+1)
a = array(a_name)
save(a)