📖

【Python】フォルダに格納したCSVファイルの中身をチェックするプログラム

2023/04/13に公開

概要

表題の通り、フォルダに格納したCSVファイルの中身をチェックして、その結果を出力するプログラムを作成した。具体的には、下記のようなケースを想定している。

  • CSVファイルは、商品シリーズごとに作成される。
  • そしてCSVファイル内では、その商品シリーズ毎の商品が一覧化され記載されている。
  • 各商品について、商品名や型番が正しいか、4列目にtrue/falseが記載されている。

いちいち各CSVファイルを開いて、「全てtrue」かチェックするのは手間なので、今回のプログラムを開発した。下記プログラムをapp.pyとして保存して、python3 app.pyを実行すれば結果が出力できる。

コード全体

import csv
import os

def check_title_and_values(filename):
    try:
        with open(filename, 'r') as csvfile:
            reader = csv.reader(csvfile)

            # 1行目を取得
            first_row = next(reader)

            # 1行目の4列目が「タイトルD」でない場合はパスする
            if first_row[3] != 'タイトルD':
                print(f"Skipped: {filename}")
                return

            # 2行目以降の4列目の値が全てtrueかチェックする
            all_true = True
            for row in reader:
                if row[3].lower() != 'true':
                    all_true = False
                    break

            if all_true:
                print(f"Success: {filename}")
            else:
                print(f"Fail: {filename}")
    except StopIteration:
        print(f"Error: CSV file {filename} is shorter than expected.")
    except IndexError:
        print(f"Error: CSV file {filename} has less than 4 columns.")

def process_all_csv_files(folder_path):
    for filename in os.listdir(folder_path):
        if filename.lower().endswith('.csv'):
            file_path = os.path.join(folder_path, filename)
            check_title_and_values(file_path)

# 実行例
process_all_csv_files("path/to/your/folder")

Discussion