CRI ADX  Last Updated: 2025-10-02 09:59 p
全体のコード

tutorial07-2_check_cuesheet_from_csv.py

# --Description:[チュートリアル]CSV を使った未登録キューのチェック
import sys
import os
import csv
import cri.atomcraft.debug as acdebug
import cri.atomcraft.project as acproject
# チェックする CSV ファイルのパス
csv_path = os.path.dirname(os.path.dirname(__file__)) + '/tutorial_data/tutorial_data03/tutorial_data3.csv'
# CSV ファイルが存在するかチェック
if os.path.isfile(csv_path) == False:
acdebug.warning("CSV ファイルが見つかりません: " + csv_path)
sys.exit()
# ----- 登録キュー名を列挙する -----
registered_cue_name_list = []
# ワークユニットを取得
workunit = acproject.get_workunit("WorkUnit_Tutorial")["data"]
# キューシートルートフォルダを取得
cuesheet_rootfolder = acproject.get_cuesheet_rootfolder(workunit)["data"]
# 拡張子を除いた CSV ファイル名からキューシート名を取得して、キューシートを取得
cuesheet_name = os.path.splitext(os.path.basename(csv_path))[0]
cuesheet = acproject.get_child_object(cuesheet_rootfolder, "CueSheet", cuesheet_name)["data"]
# キューシートに登録されたキューリストを取得
cues = acproject.find_objects(cuesheet, "Cue")["data"]
# ----- 登録キュー名リストを作る -----
acdebug.log("tutorial_data3.csv からキュー情報を収集しています...")
for cue in cues:
# キュー名を取得します
cue_name = acproject.get_value(cue, "Name")["data"]
# キュー名を登録キュー名リストに追加します
registered_cue_name_list.append(cue_name)
# CSVを開いてキューシートのキューをチェック
acdebug.log("tutorial_data3.csv を使ってキューのチェックを行います...")
unregistered_cue_name_list = []
with open(csv_path) as f:
reader = csv.reader(f)
for row in reader:
# CSVのキュー名列を取得
cue_name = row[1]
# CSVに記載されたキューが既に登録されているかどうかをチェックする
if not cue_name in registered_cue_name_list:
# 登録されていない
unregistered_cue_name_list.append(cue_name)
# チェック
if len(unregistered_cue_name_list) > 0:
acdebug.warning(cuesheet_name + "に未登録キューがあります")
for cue_name in unregistered_cue_name_list:
acdebug.warning("Cue " + cue_name + "がみつかりません。")
else:
acdebug.log("チェックシートと違いはありません。")
acdebug.log("[チュートリアル]CSV を使った未登録キューのチェック が完了しました。")