diff --git "a/a702_\346\237\245\346\211\276\345\217\212\345\241\253\345\205\245\346\274\242\345\255\227\346\250\231\351\237\263.py" "b/a702_\346\237\245\346\211\276\345\217\212\345\241\253\345\205\245\346\274\242\345\255\227\346\250\231\351\237\263.py" index 33bc8cd..fc2595c 100644 --- "a/a702_\346\237\245\346\211\276\345\217\212\345\241\253\345\205\245\346\274\242\345\255\227\346\250\231\351\237\263.py" +++ "b/a702_\346\237\245\346\211\276\345\217\212\345\241\253\345\205\245\346\274\242\345\255\227\346\250\231\351\237\263.py" @@ -93,6 +93,7 @@ def reset_han_ji_cells(wb, sheet_name='漢字注音'): # 逐欄取出漢字處理 for col in range(start_col, end_col): + sheet.range((row-2, col)).value = '' cell_value = sheet.range((row, col)).value if cell_value == 'φ': EOF = True diff --git "a/a706_\346\211\213\345\213\225\346\233\264\346\255\243\346\274\242\345\255\227\346\250\231\351\237\263.py" "b/a706_\346\211\213\345\213\225\346\233\264\346\255\243\346\274\242\345\255\227\346\250\231\351\237\263.py" index 1e8d297..3584021 100644 --- "a/a706_\346\211\213\345\213\225\346\233\264\346\255\243\346\274\242\345\255\227\346\250\231\351\237\263.py" +++ "b/a706_\346\211\213\345\213\225\346\233\264\346\255\243\346\274\242\345\255\227\346\250\231\351\237\263.py" @@ -23,7 +23,9 @@ from mod_excel_access import get_han_ji_khoo, get_value_by_name, maintain_han_ji_koo from mod_file_access import load_module_function, save_as_new_file from mod_標音 import PiauIm # 漢字標音物件 +from mod_標音 import hong_im_tng_tai_gi_im_piau # 方音符號轉台語音標 from mod_標音 import is_punctuation # 是否為標點符號 +from mod_標音 import split_hong_im_hu_ho # 分解漢字標音 from mod_標音 import tlpa_tng_han_ji_piau_im # 台語音標轉台語音標 # ========================================================================= @@ -62,6 +64,50 @@ def logging_process_step(msg): # ========================================================================= # 本程式主要處理作業程序 # ========================================================================= +def jin_kang_piau_im_cu_tai_gi(wb, han_ji: str, jin_kang_piau_im: str, piau_im: PiauIm, piau_im_huat: str) -> str: + """人工標音取【台語音標】""" + cursor = piau_im.get_cursor() # 取得【資料庫】系統之 cursor 物件 + jin_kang_piau_im_sheet = wb.sheets['人工標音字庫'] # 取得【人工標音字庫】工作表 + + if '〔' in jin_kang_piau_im and '〕' in jin_kang_piau_im: + # 將人工輸入的〔台語音標〕轉換成【方音符號】 + im_piau = jin_kang_piau_im.split('〔')[1].split('〕')[0] + tai_gi_im_piau = im_piau + # 依使用者指定之【標音方法】,將【台語音標】轉換成其所需之【漢字標音】 + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + elif '【' in jin_kang_piau_im and '】' in jin_kang_piau_im: + # 將人工輸入的【方音符號】轉換成【台語音標】 + han_ji_piau_im = jin_kang_piau_im.split('【')[1].split('】')[0] + siann, un, tiau = split_hong_im_hu_ho(han_ji_piau_im) + # 依使用者指定之【標音方法】,將【台語音標】轉換成其所需之【漢字標音】 + tai_gi_im_piau = hong_im_tng_tai_gi_im_piau( + siann=siann, + un=un, + tiau=tiau, + cursor=cursor, + )['台語音標'] + else: + # 將人工輸入的【台語音標】,解構為【聲母】、【韻母】、【聲調】 + tai_gi_im_piau = jin_kang_piau_im + # 依指定之【標音方法】,將【台語音標】轉換成其所需之【漢字標音】 + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + + # 將人工輸入的【台語音標】置入【破音字庫】Dict + maintain_han_ji_koo(sheet=jin_kang_piau_im_sheet, + han_ji=han_ji, + tai_gi=tai_gi_im_piau, + show_msg=False) + + return han_ji_piau_im + def update_han_ji_piau_im(wb): """ 更新【漢字注音】表中【台語音標】儲存格的內容,依據【標音字庫】中的【校正音標】欄位進行更新,並將【校正音標】覆蓋至原【台語音標】。 @@ -69,12 +115,13 @@ def update_han_ji_piau_im(wb): # 建置 PiauIm 物件,供作漢字拼音轉換作業 han_ji_khoo_field = '漢字庫' han_ji_khoo_name = get_value_by_name(wb=wb, name=han_ji_khoo_field) # 取得【漢字庫】名稱:河洛話、廣韻 - piau_im = PiauIm(han_ji_khoo=han_ji_khoo_name) # 指定漢字自動查找使用的【漢字庫】 - ue_im_lui_piat = get_value_by_name(wb=wb, name='語音類型') + # ue_im_lui_piat = get_value_by_name(wb=wb, name='語音類型') piau_im_huat = get_value_by_name(wb=wb, name='標音方法') # 指定【台語音標】轉換成【漢字標音】的方法 - + # 連接【河洛話】資料庫,並建立 piau_im 物件 + piau_im = PiauIm(han_ji_khoo=han_ji_khoo_name) # 取得工作表 han_ji_piau_im_sheet = wb.sheets['漢字注音'] + han_ji_piau_im_sheet.activate() piau_im_sheet_name = '標音字庫' piau_im_ji_khoo_sheet = get_han_ji_khoo(wb=wb, sheet_name=piau_im_sheet_name) @@ -103,61 +150,144 @@ def update_han_ji_piau_im(wb): # 若無需更新的資料,結束函數 if not han_ji_dict: print("【標音字庫】工作表中,【校正音標】欄,均未填入需更新之台語音標!") - return EXIT_CODE_SUCCESS + # return EXIT_CODE_SUCCESS # 逐列處理【漢字注音】表 TOTAL_LINES = int(wb.names['每頁總列數'].refers_to_range.value) - ROWS_PER_LINE = 4 CHARS_PER_ROW = int(wb.names['每列總字數'].refers_to_range.value) + ROWS_PER_LINE = 4 start_row = 5 end_row = start_row + (TOTAL_LINES * ROWS_PER_LINE) start_col = 4 end_col = start_col + CHARS_PER_ROW + # 選擇工作表 + EOF = False # 是否已到達【漢字注音】表的結尾 + line = 1 for row in range(start_row, end_row, ROWS_PER_LINE): + # 設定【作用儲存格】為列首 + Empty_Cells_Total = 0 + han_ji_piau_im_sheet.range((row, 1)).select() + + # 逐欄取出漢字處理 for col in range(start_col, end_col): + msg = "" + status = "" + Si_Piau_Tian = False + # 取得【漢字注音】表中的【漢字】儲存格內容 han_ji_cell = han_ji_piau_im_sheet.range((row, col)) - han_ji = han_ji_cell.value or "" - - if han_ji in han_ji_dict: - original_tai_gi, corrected_tai_gi, total_count, row_index_in_ji_khoo = han_ji_dict[han_ji] - tai_gi_cell = han_ji_piau_im_sheet.range((row - 1, col)) - original_tai_gi_in_sheet = tai_gi_cell.value or "" - jin_kang_piau_im_cell = han_ji_piau_im_sheet.range((row + 2, col)) - jin_kang_piau_im = jin_kang_piau_im_cell.value or "" - han_ji_piau_im_cell = han_ji_piau_im_sheet.range((row + 1, col)) - - # 更新多次,直到總數用完 - if corrected_tai_gi != original_tai_gi_in_sheet and total_count > 0: - if jin_kang_piau_im: - # 若【人工標音】已有標音,則不進行更新 - msg = f"({row}, {xw.utils.col_name(col)}) = {han_ji},已有人工標音【{jin_kang_piau_im}】,故無更新" - else: - tai_gi_cell.value = corrected_tai_gi # 更新【台語音標】儲存格 + tai_gi_cell = han_ji_piau_im_sheet.range((row - 1, col)) + jin_kang_piau_im_cell = han_ji_piau_im_sheet.range((row - 2, col)) + # han_ji = han_ji_cell.value or "" + han_ji = han_ji_cell.value + if han_ji == 'φ': + EOF = True + break + elif han_ji == '\n': + # msg = '---------------------------------------------------' + break + elif han_ji == None or han_ji == "": + print(f"({row}, {xw.utils.col_name(col)}) = 《儲存格無值》") + Empty_Cells_Total += 1 + if Empty_Cells_Total >= 2: + EOF = True + break + else: + continue + else: + # 若不為【標點符號】,則以【漢字】處理 + if is_punctuation(han_ji): + status = f"(標點符號不處理)" + Si_Piau_Tian = True + else: + if han_ji_cell.color == (0, 255, 200) and jin_kang_piau_im_cell.value == tai_gi_cell.value: + jin_kang_piau_im_cell.value = "" + han_ji_cell.color = (255, 255, 255) # 將底色設為【白色】 + han_ji_cell.font.color = (0, 0, 0) # 將文字顏色設為【黑色】 + # 取得【漢字注音】表中的【台語音標】儲存格內容 + tai_gi_cell = han_ji_piau_im_sheet.range((row - 1, col)) + tai_gi_piau_im = tai_gi_cell.value or "" + # 取得【漢字注音】表中的【人工標音】儲存格內容 + jin_kang_piau_im_cell = han_ji_piau_im_sheet.range((row - 2, col)) + jin_kang_piau_im = jin_kang_piau_im_cell.value or "" + # 取得【漢字注音】表中的【漢字標音】儲存格 + han_ji_piau_im_cell = han_ji_piau_im_sheet.range((row + 1, col)) + han_ji_piau_im = han_ji_piau_im_cell.value or "" + + # 將【漢字】儲存格重置:儲存格底色設為【白色】,文字顏色設為【黑色】 + han_ji_cell.color = (255, 255, 255) # 將底色設為【白色】 + han_ji_cell.font.color = (0, 0, 0) # 將文字顏色設為【黑色】 + + # 若【人工標音】儲存格有值,且與【台語音標】儲存格不等值,則自【人工標音】儲存格取值,變更【台語音標】儲存格內容 + status = "" + if jin_kang_piau_im and jin_kang_piau_im != tai_gi_piau_im: + status = "以人工標音更新【台語音標】及【漢字標音】" + # 依【人工標音】取得【台語音標】 + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + han_ji_piau_im_cell.value = han_ji_piau_im # 填入【漢字標音】儲存格 + tai_gi_cell.value = jin_kang_piau_im # 以【人工標音】更新【台語音標】儲存格 + # 將【漢字】儲存格做醒目標記:儲存格底色設為【黄色】,文字顏色設為【紅色】 han_ji_cell.color = (255, 255, 0) # 將底色設為【黄色】 han_ji_cell.font.color = (255, 0, 0) # 將文字顏色設為【紅色】 - tai_gi_im_piau = corrected_tai_gi - han_ji_piau_im = tlpa_tng_han_ji_piau_im( - piau_im=piau_im, - piau_im_huat=piau_im_huat, - tai_gi_im_piau=tai_gi_im_piau - ) - han_ji_piau_im_cell.value = han_ji_piau_im # 更新【漢字標音】儲存格 - - # 更新【標音字庫】中原【台語音標】欄位內容 - piau_im_ji_khoo_sheet.range(f"B{row_index_in_ji_khoo}").value = corrected_tai_gi - msg = f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標由【{original_tai_gi_in_sheet}】改為【{corrected_tai_gi}】/【{han_ji_piau_im}】" - - print(msg) - total_count -= 1 # 減少剩餘更新次數 - - # 更新完畢後,減少【標音字庫】的總數 - piau_im_ji_khoo_sheet.range(f"C{row_index_in_ji_khoo}").value = total_count - if total_count == 0: - print(f"漢字【{han_ji}】的更新次數已用完") - + if han_ji_dict and han_ji in han_ji_dict: + status = "以【標音字庫】的【校正音標】,更新【漢字】儲存格上方之【台語音標】及下方的【漢字標音】" + original_tai_gi, corrected_tai_gi, total_count, row_index_in_ji_khoo = han_ji_dict[han_ji] + original_tai_gi_in_sheet = tai_gi_cell.value or "" + # tai_gi_cell = han_ji_piau_im_sheet.range((row - 1, col)) + # jin_kang_piau_im_cell = han_ji_piau_im_sheet.range((row + 2, col)) + # jin_kang_piau_im = jin_kang_piau_im_cell.value or "" + # han_ji_piau_im_cell = han_ji_piau_im_sheet.range((row + 1, col)) + + # 更新多次,直到總數用完 + if corrected_tai_gi != original_tai_gi_in_sheet and total_count > 0: + if jin_kang_piau_im: + # 若【人工標音】已有標音,則不進行更新 + msg = f"({row}, {xw.utils.col_name(col)}) = {han_ji},已有人工標音【{jin_kang_piau_im}】,不處理" + else: + # 將【漢字】儲存格做醒目標記:儲存格底色設為【黄色】,文字顏色設為【紅色】 + han_ji_cell.color = (0, 255, 200) # 將底色設為【綠色】 + han_ji_cell.font.color = (255, 0, 0) # 將文字顏色設為【紅色】 + + tai_gi_cell.value = corrected_tai_gi # 更新【台語音標】儲存格 + tai_gi_im_piau = corrected_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + han_ji_piau_im_cell.value = han_ji_piau_im # 更新【漢字標音】儲存格 + jin_kang_piau_im_cell.value = corrected_tai_gi # 更新【人工標音】儲存格 + + # 更新【標音字庫】中原【台語音標】欄位內容 + piau_im_ji_khoo_sheet.range(f"B{row_index_in_ji_khoo}").value = corrected_tai_gi + msg = f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標由【{original_tai_gi_in_sheet}】改為【{corrected_tai_gi}】/【{han_ji_piau_im}】" + + print(msg) + total_count -= 1 # 減少剩餘更新次數 + + # 更新完畢後,減少【標音字庫】的總數 + piau_im_ji_khoo_sheet.range(f"C{row_index_in_ji_khoo}").value = total_count + if total_count == 0: + print(f"漢字【{han_ji}】的更新次數已用完") + + # 每欄結束前處理作業 + if Si_Piau_Tian: + print(f"({row}, {xw.utils.col_name(col)}) = {han_ji}:標點符號不處理") + else: + msg_tail = f":《{status}》" if status else f":不處理" + print(f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標【{tai_gi_piau_im}】/【{han_ji_piau_im}】{msg_tail}") + + # 每列結束前處理作業 + line += 1 + if EOF or line > TOTAL_LINES: break + + han_ji_piau_im_sheet.range('A1').select() print("【漢字注音】表的台語音標更新作業已完成") # 作業結束前處理 diff --git "a/mod_\346\250\231\351\237\263.py" "b/mod_\346\250\231\351\237\263.py" index 219f5ad..1b00fd0 100644 --- "a/mod_\346\250\231\351\237\263.py" +++ "b/mod_\346\250\231\351\237\263.py" @@ -144,21 +144,21 @@ def split_hong_im_hu_ho(hong_im_piau_im): return [siann_mu, un_mu, str(tiau_ho)] -def siann_un_tiau_tng_piau_im(piau_im, zu_im_huat, siann_bu, un_bu, tiau_ho): +def siann_un_tiau_tng_piau_im(piau_im, piau_im_huat, siann_bu, un_bu, tiau_ho): """選擇並執行對應的注音方法""" - if zu_im_huat == "雅俗通": + if piau_im_huat == "雅俗通": return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "十五音": + elif piau_im_huat == "十五音": return piau_im.SNI_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "白話字": + elif piau_im_huat == "白話字": return piau_im.POJ_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "台羅拼音": + elif piau_im_huat == "台羅拼音": return piau_im.TL_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "閩拼方案": + elif piau_im_huat == "閩拼方案": return piau_im.BP_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "方音符號": + elif piau_im_huat == "方音符號": return piau_im.TPS_piau_im(siann_bu, un_bu, tiau_ho) - elif zu_im_huat == "台語音標": + elif piau_im_huat == "台語音標": siann = piau_im.Siann_Bu_Dict[siann_bu]["台語音標"] or "" un = piau_im.Un_Bu_Dict[un_bu]["台語音標"] return f"{siann}{un}{tiau_ho}" @@ -378,9 +378,11 @@ class PiauIm: "\u02D9": 8, } - def __init__(self, han_ji_khoo="漢語標音"): + # def __init__(self, han_ji_khoo="漢語標音"): + def __init__(self, han_ji_khoo="漢語標音", cursor=None): self.Siann_Bu_Dict = None self.Un_Bu_Dict = None + self.cursor = cursor # 將 cursor 存入物件屬性 self.init_piau_im_dict(han_ji_khoo) self.TL_pattern1 = re.compile(r"(uai|uan|uah|ueh|ee|ei|oo)", re.I) self.TL_pattern2 = re.compile(r"(o|e|a|u|i|n|m)", re.I) @@ -388,6 +390,20 @@ def __init__(self, han_ji_khoo="漢語標音"): self.POJ_pattern2 = re.compile(r"(o|e|a|u|i|n|m)", re.I) self.HongImTiauHu = re.compile(r"ˋ|˪|ˊ|˫|\u02D9", re.I) + def set_cursor(self, cursor): + """ + 設定資料庫 cursor 物件 + :param cursor: 資料庫 cursor 物件 + """ + self.cursor = cursor + + def get_cursor(self): + """ + 取得資料庫 cursor 物件 + :return: cursor 物件 + """ + return self.cursor + def _init_siann_bu_dict(self, cursor): # 執行 SQL 查詢 cursor.execute("SELECT * FROM 聲母對照表") @@ -411,16 +427,45 @@ def _init_siann_bu_dict(self, cursor): } return siann_bu_dict - def _init_un_bu_dict(self, cursor): - # 執行 SQL 查詢 - cursor.execute("SELECT * FROM 韻母對照表") - - # 獲取所有資料 - rows = cursor.fetchall() + def _init_siann_bu_dict(self): + """ + 初始化聲母對照表,使用 cursor 進行 SQL 查詢 + """ + if not self.cursor: + raise ValueError("資料庫 cursor 未設定,無法執行查詢") + self.cursor.execute("SELECT * FROM 聲母對照表") + rows = self.cursor.fetchall() + #------------------------------------------------------------------ + # 從查詢結果中提取資料並將其整理成一個字典 + #------------------------------------------------------------------ + # siann_bu_dict = {row[1]: {'台語音標': row[1], '國際音標': row[2]} for row in rows} + siann_bu_dict = {} # 初始化字典 + for row in rows: + siann_bu_dict[row[1]] = { + '台語音標': row[1], + '國際音標': row[2], + '台羅拼音': row[3], + '白話字': row[4], + '閩拼方案': row[5], + '方音符號': row[6], + '十五音': row[7], + } + return siann_bu_dict + def _init_un_bu_dict(self): + """ + 初始化韻母對照表,使用 cursor 進行 SQL 查詢 + """ + if not self.cursor: + raise ValueError("資料庫 cursor 未設定,無法執行查詢") + self.cursor.execute("SELECT * FROM 韻母對照表") + rows = self.cursor.fetchall() + #------------------------------------------------------------------ + # 設定【韻母對照表】用字典 + # un_bu_dict = {row[1]: {'台語音標': row[1], '國際音標': row[2]} for row in rows} + #------------------------------------------------------------------ # 初始化字典 un_bu_dict = {} - # 從查詢結果中提取資料並將其整理成一個字典 for row in rows: un_bu_dict[row[1]] = { @@ -437,17 +482,15 @@ def _init_un_bu_dict(self, cursor): return un_bu_dict def init_piau_im_dict(self, han_ji_khoo): - if han_ji_khoo == "河洛話": - db_name = 'Ho_Lok_Ue.db' - elif han_ji_khoo == "廣韻": - db_name = 'Kong_Un.db' - else: - db_name = 'Han_Ji_Piau_Im.db' - + """ + 初始化聲母與韻母字典 + :param han_ji_khoo: 標音類型 + """ + db_name = 'Ho_Lok_Ue.db' if han_ji_khoo == "河洛話" else 'Han_Ji_Piau_Im.db' with sqlite3.connect(db_name) as conn: - cursor = conn.cursor() - self.Siann_Bu_Dict = self._init_siann_bu_dict(cursor) - self.Un_Bu_Dict = self._init_un_bu_dict(cursor) + self.cursor = conn.cursor() if not self.cursor else self.cursor + self.Siann_Bu_Dict = self._init_siann_bu_dict() + self.Un_Bu_Dict = self._init_un_bu_dict() #================================================================ # 在韻母加調號:白話字(POJ)與台羅(TL)同 diff --git "a/output7/\343\200\220\346\262\263\346\264\233\347\231\275\350\251\261\346\263\250\351\237\263-\351\233\205\344\277\227\351\200\232\343\200\221\343\200\212TestCase\343\200\213.xlsx" "b/output7/\343\200\220\346\262\263\346\264\233\347\231\275\350\251\261\346\263\250\351\237\263-\351\233\205\344\277\227\351\200\232\343\200\221\343\200\212TestCase\343\200\213.xlsx" index 715fb85..25dabf1 100644 Binary files "a/output7/\343\200\220\346\262\263\346\264\233\347\231\275\350\251\261\346\263\250\351\237\263-\351\233\205\344\277\227\351\200\232\343\200\221\343\200\212TestCase\343\200\213.xlsx" and "b/output7/\343\200\220\346\262\263\346\264\233\347\231\275\350\251\261\346\263\250\351\237\263-\351\233\205\344\277\227\351\200\232\343\200\221\343\200\212TestCase\343\200\213.xlsx" differ diff --git a/process_log.txt b/process_log.txt index 292d92b..1737980 100644 --- a/process_log.txt +++ b/process_log.txt @@ -1604,3 +1604,600 @@ pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, None, None, Non 2025-01-13 20:18:13,020 - INFO - 完成【處理作業】... 2025-01-13 20:18:13,082 - INFO - 釋放 Excel 資源,處理完成。 2025-01-13 20:18:13,083 - INFO - 作業成功完成! +2025-01-14 11:07:33,528 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:07:33,675 - INFO - 處理作業失敗,過程中出錯! +2025-01-14 11:07:33,675 - INFO - 處理作業失敗,過程中出錯! +2025-01-14 11:07:34,218 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:09:15,136 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:09:15,322 - INFO - 完成【處理作業】... +2025-01-14 11:09:15,456 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:09:15,456 - INFO - 作業成功完成! +2025-01-14 11:11:33,346 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:12:05,026 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:12:26,853 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:19:26,854 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:20:26,177 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:29:41,477 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:29:49,628 - ERROR - 執行過程中發生未知錯誤: '十五音' +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 295, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 254, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 186, in update_han_ji_piau_im + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + File "a706_手動更正漢字標音.py", line 96, in jin_kang_piau_im_cu_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + File "c:\work\Piau-Im\mod_標音.py", line 177, in tlpa_tng_han_ji_piau_im + han_ji_piau_im = siann_un_tiau_tng_piau_im( + piau_im, + ...<3 lines>... + tiau_ho + ) + File "c:\work\Piau-Im\mod_標音.py", line 150, in siann_un_tiau_tng_piau_im + return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 768, in NST_piau_im + un = self.Un_Bu_Dict[un_bu][piau_im_huat] + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ +KeyError: '十五音' +2025-01-14 11:29:49,747 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:31:10,533 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:32:49,740 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:34:16,980 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:34:47,587 - ERROR - 執行過程中發生未知錯誤: '十五音' +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 295, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 254, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 186, in update_han_ji_piau_im + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + File "a706_手動更正漢字標音.py", line 96, in jin_kang_piau_im_cu_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + File "c:\work\Piau-Im\mod_標音.py", line 177, in tlpa_tng_han_ji_piau_im + han_ji_piau_im = siann_un_tiau_tng_piau_im( + piau_im, + ...<3 lines>... + tiau_ho + ) + File "c:\work\Piau-Im\mod_標音.py", line 150, in siann_un_tiau_tng_piau_im + return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 768, in NST_piau_im + un = self.Un_Bu_Dict[un_bu][piau_im_huat] + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ +KeyError: '十五音' +2025-01-14 11:34:47,721 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:36:29,641 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:36:52,539 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:37:02,865 - ERROR - 執行過程中發生未知錯誤: '十五音' +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 295, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 254, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 186, in update_han_ji_piau_im + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + File "a706_手動更正漢字標音.py", line 96, in jin_kang_piau_im_cu_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + File "c:\work\Piau-Im\mod_標音.py", line 177, in tlpa_tng_han_ji_piau_im + han_ji_piau_im = siann_un_tiau_tng_piau_im( + piau_im, + ...<3 lines>... + tiau_ho + ) + File "c:\work\Piau-Im\mod_標音.py", line 150, in siann_un_tiau_tng_piau_im + return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 768, in NST_piau_im + un = self.Un_Bu_Dict[un_bu][piau_im_huat] + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ +KeyError: '十五音' +2025-01-14 11:37:03,202 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:37:46,652 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:41:33,411 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:43:27,461 - ERROR - 執行過程中發生未知錯誤: '十五音' +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 295, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 254, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 186, in update_han_ji_piau_im + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + File "a706_手動更正漢字標音.py", line 96, in jin_kang_piau_im_cu_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + File "c:\work\Piau-Im\mod_標音.py", line 177, in tlpa_tng_han_ji_piau_im + han_ji_piau_im = siann_un_tiau_tng_piau_im( + piau_im, + ...<3 lines>... + tiau_ho + ) + File "c:\work\Piau-Im\mod_標音.py", line 150, in siann_un_tiau_tng_piau_im + return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 768, in NST_piau_im + un = self.Un_Bu_Dict[un_bu][piau_im_huat] + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ +KeyError: '十五音' +2025-01-14 11:43:27,613 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:45:14,303 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:47:04,533 - ERROR - 執行過程中發生未知錯誤: '十五音' +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 295, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 254, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 186, in update_han_ji_piau_im + han_ji_piau_im = jin_kang_piau_im_cu_tai_gi(wb=wb, + han_ji=han_ji, + jin_kang_piau_im=jin_kang_piau_im, + piau_im=piau_im, + piau_im_huat=piau_im_huat) + File "a706_手動更正漢字標音.py", line 96, in jin_kang_piau_im_cu_tai_gi + han_ji_piau_im = tlpa_tng_han_ji_piau_im( + piau_im=piau_im, + piau_im_huat=piau_im_huat, + tai_gi_im_piau=tai_gi_im_piau + ) + File "c:\work\Piau-Im\mod_標音.py", line 177, in tlpa_tng_han_ji_piau_im + han_ji_piau_im = siann_un_tiau_tng_piau_im( + piau_im, + ...<3 lines>... + tiau_ho + ) + File "c:\work\Piau-Im\mod_標音.py", line 150, in siann_un_tiau_tng_piau_im + return piau_im.NST_piau_im(siann_bu, un_bu, tiau_ho) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 768, in NST_piau_im + un = self.Un_Bu_Dict[un_bu][piau_im_huat] + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ +KeyError: '十五音' +2025-01-14 11:47:04,663 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:59:14,454 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:59:14,511 - ERROR - 執行過程中發生未知錯誤: no such table: 聲母對照表 +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 298, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 257, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 122, in update_han_ji_piau_im + piau_im = PiauIm(han_ji_khoo=han_ji_khoo_name, cursor=cursor) + File "c:\work\Piau-Im\mod_標音.py", line 386, in __init__ + self.init_piau_im_dict(han_ji_khoo) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 474, in init_piau_im_dict + self.Siann_Bu_Dict = self._init_siann_bu_dict() + ~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\mod_標音.py", line 436, in _init_siann_bu_dict + self.cursor.execute("SELECT * FROM 聲母對照表") + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +sqlite3.OperationalError: no such table: 聲母對照表 +2025-01-14 11:59:14,636 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 11:59:30,481 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 11:59:30,537 - ERROR - 執行過程中發生未知錯誤: no such table: 聲母對照表 +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 298, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 257, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 122, in update_han_ji_piau_im + piau_im = PiauIm(han_ji_khoo=han_ji_khoo_name, cursor=cursor) + File "c:\work\Piau-Im\mod_標音.py", line 386, in __init__ + self.init_piau_im_dict(han_ji_khoo) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ + File "c:\work\Piau-Im\mod_標音.py", line 474, in init_piau_im_dict + self.Siann_Bu_Dict = self._init_siann_bu_dict() + ~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\mod_標音.py", line 436, in _init_siann_bu_dict + self.cursor.execute("SELECT * FROM 聲母對照表") + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +sqlite3.OperationalError: no such table: 聲母對照表 +2025-01-14 11:59:30,659 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 12:00:47,648 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:03:19,614 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:09:21,791 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:27:50,786 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:27:51,017 - ERROR - 執行過程中發生未知錯誤: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 302, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 261, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 241, in update_han_ji_piau_im + print(f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標【{tai_gi_piau_im}】/【{han_ji_piau_im}】{msg_tail}") + ^^^^^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +2025-01-14 12:27:51,163 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 12:28:16,114 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:28:16,348 - ERROR - 執行過程中發生未知錯誤: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 302, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 261, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 241, in update_han_ji_piau_im + print(f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標【{tai_gi_piau_im}】/【{han_ji_piau_im}】{msg_tail}") + ^^^^^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +2025-01-14 12:28:16,489 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 12:30:08,149 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 12:30:47,326 - ERROR - 執行過程中發生未知錯誤: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 302, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 261, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 241, in update_han_ji_piau_im + print(f"({row}, {xw.utils.col_name(col)}) = {han_ji},台語音標【{tai_gi_piau_im}】/【{han_ji_piau_im}】{msg_tail}") + ^^^^^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'han_ji_piau_im' where it is not associated with a value +2025-01-14 12:30:47,481 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 12:32:19,499 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:11:00,041 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:11:00,241 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 321, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 280, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 172, in update_han_ji_piau_im + sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 13:11:00,404 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 13:11:23,031 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:11:23,212 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 321, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 280, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 172, in update_han_ji_piau_im + sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 13:11:23,339 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 13:12:07,419 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:12:21,870 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 321, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 280, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 172, in update_han_ji_piau_im + sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 13:12:22,010 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 13:13:33,776 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:14:08,245 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 321, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 280, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 172, in update_han_ji_piau_im + sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 13:14:08,401 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 13:16:57,141 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:17:06,990 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 321, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 280, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 172, in update_han_ji_piau_im + sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 13:17:07,123 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 13:18:12,853 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:24:28,437 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:27:03,839 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:31:22,827 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:32:53,238 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:33:45,925 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:35:37,531 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:37:42,151 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:40:13,342 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:40:57,233 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:42:20,890 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:46:07,372 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:47:54,035 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:48:26,488 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:51:19,399 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 13:57:02,635 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:01:19,915 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:03:57,154 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:04:54,099 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:06:56,930 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:15:57,377 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:17:19,378 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:19:38,118 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:19:53,474 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:21:31,321 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:21:57,000 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:22:42,880 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:24:28,205 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:27:22,922 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 14:28:24,526 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:33:38,644 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:35:58,776 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:37:24,492 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:40:11,114 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:41:41,894 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:50:06,048 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:50:06,271 - ERROR - 執行過程中發生未知錯誤: 'bool' object is not callable +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 332, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 291, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 193, in update_han_ji_piau_im + if is_punctuation(han_ji): + ~~~~~~~~~~~~~~^^^^^^^^ +TypeError: 'bool' object is not callable +2025-01-14 14:50:06,420 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 14:53:34,356 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 14:56:33,825 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:00:08,193 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:02:09,097 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:04:00,497 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:07:29,353 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:10:34,519 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:12:02,643 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:13:09,453 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:13:25,628 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:13:25,628 - INFO - 完成【處理作業】... +2025-01-14 15:13:25,813 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:13:25,813 - INFO - 作業成功完成! +2025-01-14 15:13:45,460 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:14:11,836 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:14:11,836 - INFO - 完成【處理作業】... +2025-01-14 15:14:12,045 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:14:12,045 - INFO - 作業成功完成! +2025-01-14 15:15:55,174 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:16:16,804 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:16:16,805 - INFO - 完成【處理作業】... +2025-01-14 15:16:16,985 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:16:16,985 - INFO - 作業成功完成! +2025-01-14 15:17:08,152 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:17:08,333 - ERROR - 執行過程中發生未知錯誤: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 334, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 293, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 170, in update_han_ji_piau_im + han_ji_piau_im_sheet.range((row, 1)).select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\main.py", line 2815, in select + self.impl.select() + ~~~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 1500, in select + return self.xl.Select() + ~~~~~~~~~~~~~~^^ + File "c:\work\Piau-Im\.venv\Lib\site-packages\xlwings\_xlwindows.py", line 122, in __call__ + v = self.__method(*args, **kwargs) + File ">", line 2, in Select + File "c:\work\Piau-Im\.venv\Lib\site-packages\win32com\client\dynamic.py", line 355, in _ApplyTypes_ + result = self._oleobj_.InvokeTypes( + *(dispid, LCID, wFlags, retType, argTypes) + args + ) +pywintypes.com_error: (-2147352567, '發生例外狀況。', (0, 'Microsoft Excel', 'Class Range 的 Select 方法失敗', 'xlmain11.chm', 0, -2146827284), None) +2025-01-14 15:17:08,481 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:18:16,909 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:18:28,388 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:18:28,389 - INFO - 完成【處理作業】... +2025-01-14 15:18:28,545 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:18:28,545 - INFO - 作業成功完成! +2025-01-14 15:19:00,112 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:19:10,548 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:19:10,548 - INFO - 完成【處理作業】... +2025-01-14 15:19:10,720 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:19:10,720 - INFO - 作業成功完成! +2025-01-14 15:54:34,895 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:54:45,516 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:54:45,516 - INFO - 完成【處理作業】... +2025-01-14 15:54:45,674 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:54:45,674 - INFO - 作業成功完成! +2025-01-14 15:56:40,528 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:56:40,920 - ERROR - 執行過程中發生未知錯誤: 'str' object has no attribute 'value' and no __dict__ for setting new attributes +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 337, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 296, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 252, in update_han_ji_piau_im + jin_kang_piau_im.value = corrected_tai_gi # 更新【人工標音】儲存格 + ^^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'str' object has no attribute 'value' and no __dict__ for setting new attributes +2025-01-14 15:56:41,078 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:59:20,146 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 15:59:30,625 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 15:59:30,625 - INFO - 完成【處理作業】... +2025-01-14 15:59:30,813 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 15:59:30,813 - INFO - 作業成功完成! +2025-01-14 16:02:20,636 - INFO - 作業開始 +2025-01-14 16:02:20,637 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:03:21,293 - INFO - 己存檔至路徑:{file_path} +2025-01-14 16:03:21,293 - INFO - a702_查找及填入漢字標音.py 程式已執行完畢! +2025-01-14 16:03:21,293 - INFO - 作業完成! +2025-01-14 16:08:47,416 - INFO - 作業開始 +2025-01-14 16:08:47,417 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:09:46,383 - INFO - a702_查找及填入漢字標音.py 程式已執行完畢! +2025-01-14 16:10:11,081 - INFO - 作業開始 +2025-01-14 16:10:11,082 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:11:10,355 - INFO - 己存檔至路徑:{file_path} +2025-01-14 16:11:10,355 - INFO - a702_查找及填入漢字標音.py 程式已執行完畢! +2025-01-14 16:11:10,355 - INFO - 作業完成! +2025-01-14 16:13:49,550 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:13:58,819 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:13:58,820 - INFO - 完成【處理作業】... +2025-01-14 16:13:58,895 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:13:58,895 - INFO - 作業成功完成! +2025-01-14 16:14:17,637 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:14:27,598 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:14:27,598 - INFO - 完成【處理作業】... +2025-01-14 16:14:27,671 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:14:27,671 - INFO - 作業成功完成! +2025-01-14 16:15:34,597 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:15:44,502 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:15:44,502 - INFO - 完成【處理作業】... +2025-01-14 16:15:44,581 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:15:44,581 - INFO - 作業成功完成! +2025-01-14 16:16:40,231 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:16:50,102 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:16:50,102 - INFO - 完成【處理作業】... +2025-01-14 16:16:50,177 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:16:50,177 - INFO - 作業成功完成! +2025-01-14 16:19:25,391 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:19:35,062 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:19:35,062 - INFO - 完成【處理作業】... +2025-01-14 16:19:35,144 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:19:35,144 - INFO - 作業成功完成! +2025-01-14 16:20:19,947 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:20:29,948 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:20:29,948 - INFO - 完成【處理作業】... +2025-01-14 16:20:30,032 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:20:30,032 - INFO - 作業成功完成! +2025-01-14 16:29:15,044 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:29:24,256 - ERROR - 執行過程中發生未知錯誤: cannot access local variable 'jin_kang_piau_im_cell' where it is not associated with a value +Traceback (most recent call last): + File "a706_手動更正漢字標音.py", line 341, in main + result_code = process(wb) + File "a706_手動更正漢字標音.py", line 300, in process + return_code = update_han_ji_piau_im(wb=wb) + File "a706_手動更正漢字標音.py", line 202, in update_han_ji_piau_im + if han_ji_cell.color == (0, 255, 200) and jin_kang_piau_im_cell.value == tai_gi_cell.value: + ^^^^^^^^^^^^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'jin_kang_piau_im_cell' where it is not associated with a value +2025-01-14 16:29:24,318 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:31:49,655 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:34:40,292 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:35:33,827 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:36:17,909 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:36:28,342 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:36:28,342 - INFO - 完成【處理作業】... +2025-01-14 16:36:28,413 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:36:28,413 - INFO - 作業成功完成! +2025-01-14 16:36:42,856 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:36:52,688 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:36:52,689 - INFO - 完成【處理作業】... +2025-01-14 16:36:52,760 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:36:52,760 - INFO - 作業成功完成! +2025-01-14 16:37:08,328 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:37:19,124 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:37:19,124 - INFO - 完成【處理作業】... +2025-01-14 16:37:19,207 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:37:19,207 - INFO - 作業成功完成! +2025-01-14 16:38:09,805 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:38:19,995 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:38:19,996 - INFO - 完成【處理作業】... +2025-01-14 16:38:20,067 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:38:20,067 - INFO - 作業成功完成! +2025-01-14 16:38:53,854 - INFO - 專案根目錄為: C:\work\Piau-Im +2025-01-14 16:39:04,773 - INFO - 完成【作業程序】:更新漢字標音並同步【標音字庫】內容... +2025-01-14 16:39:04,774 - INFO - 完成【處理作業】... +2025-01-14 16:39:04,853 - INFO - 釋放 Excel 資源,處理完成。 +2025-01-14 16:39:04,853 - INFO - 作業成功完成! diff --git "a/\346\262\263\346\264\233\350\251\261" "b/\346\262\263\346\264\233\350\251\261" new file mode 100644 index 0000000..e69de29