全体のコード

tutorial07-2_check_cuesheet_from_csv.py

1 # --Description:[チュートリアル]CSV を使った未登録キューのチェック
2 
3 import sys
4 import os
5 import csv
6 import cri.atomcraft.debug as acdebug
7 import cri.atomcraft.project as acproject
8 
9 # チェックする CSV ファイルのパス
10 csv_path = os.path.dirname(os.path.dirname(__file__)) + '/tutorial_data/tutorial_data03/tutorial_data3.csv'
11 
12 # CSV ファイルが存在するかチェック
13 if os.path.isfile(csv_path) == False:
14  acdebug.warning("CSV ファイルが見つかりません: " + csv_path)
15  sys.exit()
16 
17 
18 # ----- 登録キュー名を列挙する -----
19 registered_cue_name_list = []
20 
21 # ワークユニットを取得
22 workunit = acproject.get_workunit("WorkUnit_Tutorial")["data"]
23 # キューシートルートフォルダを取得
24 cuesheet_rootfolder = acproject.get_cuesheet_rootfolder(workunit)["data"]
25 
26 # 拡張子を除いた CSV ファイル名からキューシート名を取得して、キューシートを取得
27 cuesheet_name = os.path.splitext(os.path.basename(csv_path))[0]
28 cuesheet = acproject.get_child_object(cuesheet_rootfolder, "CueSheet", cuesheet_name)["data"]
29 # キューシートに登録されたキューリストを取得
30 cues = acproject.find_objects(cuesheet, "Cue")["data"]
31 
32 # ----- 登録キュー名リストを作る -----
33 acdebug.log("tutorial_data3.csv からキュー情報を収集しています...")
34 for cue in cues:
35  # キュー名を取得します
36  cue_name = acproject.get_value(cue, "Name")["data"]
37  # キュー名を登録キュー名リストに追加します
38  registered_cue_name_list.append(cue_name)
39 
40 
41 # CSVを開いてキューシートのキューをチェック
42 acdebug.log("tutorial_data3.csv を使ってキューのチェックを行います...")
43 unregistered_cue_name_list = []
44 
45 with open(csv_path) as f:
46  reader = csv.reader(f)
47 
48  for row in reader:
49  # CSVのキュー名列を取得
50  cue_name = row[1]
51 
52  # CSVに記載されたキューが既に登録されているかどうかをチェックする
53  if not cue_name in registered_cue_name_list:
54  # 登録されていない
55  unregistered_cue_name_list.append(cue_name)
56 
57 # チェック
58 if len(unregistered_cue_name_list) > 0:
59  acdebug.warning(cuesheet_name + "に未登録キューがあります")
60  for cue_name in unregistered_cue_name_list:
61  acdebug.warning("Cue " + cue_name + "がみつかりません。")
62 else:
63  acdebug.log("チェックシートと違いはありません。")
64 
65 acdebug.log("[チュートリアル]CSV を使った未登録キューのチェック が完了しました。")