读入/写入csv文件

该代码段展示了如何读取CSV文件,检查其中的图片路径是否有效。通过使用`cv2.imread()`函数加载图片,如果图片为空,则跳过该行。最终,将有效的图片路径写入新的CSV文件。这是一个用于数据预处理的实用脚本,确保后续模型训练只使用可用的图片数据。
摘要由CSDN通过智能技术生成

背景:csv文件中,部分路径为空路径,判断图片是否为空,将不为空的图片重新写成一个csv

import pandas as pd
import cv2
import csv

def new_csv():
    new_csv_file = []
    count = 0
    
    ori_csv = open('/yangjiang/CDCN-Face-Anti-Spoofing.pytorch/U2_train_pos_0713.csv')
    f = open('/yangjiang/CDCN-Face-Anti-Spoofing.pytorch/U2_modified_csv','w')
    csv_write=csv.writer(f,dialect='excel')
    reader = csv.reader(ori_csv)
    rows = list(reader)
    for row in rows:
        #print(row[1])
        if row[1] == '1':         
            img_path = row[0]
            map_path = row[2]
            mask_label = cv2.imread(map_path)
            train_img = cv2.imread(img_path)
            if mask_label is None or train_img is None:
                count = count + 1
                #print(map_path)
                continue
            
        print('zz:', [row[0],row[1],row[2]])
        csv_write.writerow(row)
        print('success write!')
    print('count',count)
    
if __name__=="__main__":
    new_csv()

注:
(1)读csv文件

ori_csv = open('/yangjiang/CDCN-Face-Anti-Spoofing.pytorch/U2_train_pos_0713.csv')
reader = csv.reader(ori_csv)
rows = list(reader)
for row in rows:

详见:https://blog.csdn.net/msq16021/article/details/114263782
(2)写csv文件

f = open('/yangjiang/CDCN-Face-Anti-Spoofing.pytorch/U2_modified_csv','w')
csv_write=csv.writer(f,dialect='excel')
csv_write.writerow(row)

(3)写代码的时候有个小细节,开始是这样写的, 发现csv并没有写入,原因是走了if分支,有图片为空,count计数,接下来continue,直接跳出本次循环开始下一次,所以是一直不会运行else中的写入csv分支,所以写代码的时候一定要认真一些,正确的就是像最上面代码的写法。

for row in rows:
        #print(row[1])
        if row[1] == '1':         
            img_path = row[0]
            map_path = row[2]
            mask_label = cv2.imread(map_path)
            train_img = cv2.imread(img_path)
            if mask_label is None or train_img is None:
                count = count + 1
                #print(map_path)
                continue
            else:
                print('zz:', [row[0],row[1],row[2]])
        		csv_write.writerow(row)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我现在强的可怕~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值