[亲测有效](python删除csv文件中特定行)

验证图片地址是否存在,若不存在,则删除该地址在csv文件所在行

import csv
import os

root = './csv_files'
path = './main'

file_old = 'file_names_ugc.csv'
file_old = os.path.join(root, file_old)

file_temp = 'file_names_ugc_temp.csv'
file_temp = os.path.join(root, file_temp)
fieldnames = ["","Unnamed: 0", "File_names", "labels"]
with open(file_old, 'r', newline='', encoding='gbk') as f_old, \
        open(file_temp, 'w', newline='', encoding='gbk') as f_temp:
    f_csv_old = csv.DictReader(f_old,fieldnames=fieldnames)
    f_csv_temp = csv.DictWriter(f_temp,fieldnames=fieldnames)
    for row in f_csv_old:
        # print(row['File_names'])
        imgname = row['File_names']
        imgpath = os.path.join(path, imgname)
        # f_csv_temp.writerow(rows)

        try:
            img1 = Image.open(imgpath)

            f_csv_temp.writerow({'': row[''],
                                 'Unnamed: 0': row['Unnamed: 0'],
                                 'File_names': row['File_names'],
                                 'labels': row['labels']})
            # plt.imshow(img1)
            # plt.show()
        except:
           pass

# os.remove(file_old)
# os.rename(file_temp, file_old)

你可能感兴趣的:(Python,python)