一般用pandas库读取csv比较方便,比如原始的csv长这样,第一行的id,truelabels和prelabels是列名。 代码为:
import pandas as pd file = pd.read_csv(filename) print(file['id']) # 输出所有id信息(第一列全部输出) # 遍历第一列: for i in range(len(file['id'])): print(file['id'][i])还是以上面的csv为例,如果我想为每一个id加上一个shape属性,需要这样改:
shape = [] for i in range(len(file['id'])): file_name = file['id'][i] #获取第一列 id名 img = cv2.imread(file_name + '.jpg') shape.append('{}*{}'.format(img.shape[1], img.shape[0])) # 宽和高 result_df = pd.DataFrame({'id': file['id'], 'turelabels': file['turelabels'], 'prelabels': file['prelabels'], 'shape': shape}) result_df.to_csv('output.csv', index=False) # index=False的意思是说,以自定义的id作为索引,而不是0,1,2这样的自然数做索引。有两种方法,上面的to_csv函数就可以:
import pandas as pd d = {1:1, 2:2, 3:3, 4:5, 7:10} #随便拿个字典的例子 df = pd.DataFrame({'key': list(d.keys()), 'value': list(d.values())}) df.to_csv('output.csv', index=False)也可以用写入文件的方式:
with open('output.csv', 'w') as f: [f.write('{0},{1}\n'.format(key, value)) for key, value in d.items()]
2019.6.23更新: