Python資料清洗之 刪除讀取失敗檔案

2021-10-24 05:27:01 字數 1967 閱讀 1971

import os

import shutil

import warnings

from pil import image

warnings.filterwarnings("error", category=userwarning)

def is_read_successfully(file):

try:

image.open(file).convert('rgb')

return true

except exception:

return false

def check_images(data_dir, label, backup_dir, delete, backup):

count_error = 0 # 讀取失敗數量

label_dir = os.path.join(data_dir, label) # 當前遍歷 label 資料夾目錄

for parent, dirs, files in os.walk(label_dir):

if files == : # 跳過無檔案的資料夾

continue

for file in files: # 遍歷當前 parent 下的檔案

cur_file = os.path.join(parent, file) # 當前遍歷的檔案路徑

if not is_read_successfully(cur_file): # 判斷檔案讀取是否成功

count_error += 1 # 更新讀取失敗數量

if backup: # 備份檔案

cur_backup_dir = parent.replace(data_dir, backup_dir)

if not os.path.exists(cur_backup_dir):

os.makedirs(cur_backup_dir)

dst_file = os.path.join(cur_backup_dir, file) # 備份檔案路徑

shutil.copy(cur_file, dst_file) # 檔案備份

if delete: # 檔案刪除

os.remove(cur_file)

return count_error

def count_images(data_dir, backup_dir, delete=false, backup=true):

labels = # data_dir 下19類資料的資料夾名

for dir in os.listdir(data_dir): # os.listdir返回資料夾和檔案,只篩選 data_dir 下的資料夾

cur_dir = os.path.join(data_dir, dir)

if os.path.isdir(cur_dir):

print("資料夾\t問題數量")

# 遍歷 19 類資料的資料夾

for label in labels:

count_error = check_images(data_dir, label, backup_dir, delete, backup)

print("{}\t{}".format(label, count_error))

def main():

delete = true # 是否刪除讀取失敗

backup = true # 是否備份讀取失敗

data_dir = r'd:/data/train_val' # 待檢測的資料集目錄

backup_dir = r'd:/data/備份/讀取失敗檔案' # 備份路徑

count_images(data_dir, backup_dir, delete, backup) # 統計讀取失敗數量

if __name__ == '__main__':

main()

資料清洗之資料清洗概述

從廣泛的意義上來講,資料是乙個寬泛的概念,包括但不限於 我們要了解資料清洗,就需理解資料的內涵和外延 常見的資料有 其中,比較重要比較常見的分析資料是 資料。這裡重點介紹一些關於 資料的內容。資料 資料物件由屬性 attributes 及其值 value 構成 資料的特徵 什麼是資料清洗 資料清洗是...

python之資料清洗指令碼

coding utf 8 import numpy as np import pandas as pd na list no clue n a 0 na包含的型別 data pd.read csv 311 service requests.csv na values na list,dtype 列值...

Python資料分析之資料清洗

good data decides good analyse 資料清洗,是資料分析中不可缺少的乙個環節,其處理的好壞在很大程度上影響著資料分析的結果。而且以前聽老師說過資料清洗佔整個的資料分析的一半時間以上 汗。資料清洗也是乙個大學問啊 首先讀入檔案 我們可以看出有乙個nan,李四的數學成績也是不符...