📖
【Python】フォルダに格納したCSVファイルの中身をチェックするプログラム
概要
表題の通り、フォルダに格納した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