diff --git a/.vscode/launch.json b/.vscode/launch.json index b574db4..c652ec5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -18,6 +18,13 @@ "program": "a720_待注音漢字填入標音用方格.py", "console": "integratedTerminal", }, + { + "name": "a700_Iong_Excel_Piau_Zu_Im", + "type": "debugpy", + "request": "launch", + "program": "a700_Iong_Excel_Piau_Zu_Im.py", + "console": "integratedTerminal", + }, { "name": "a730_將漢字注音填入", "type": "debugpy", diff --git a/Tai_Gi_Zu_Im_Bun.xlsx b/Tai_Gi_Zu_Im_Bun.xlsx index e5900ba..a0bd76e 100644 Binary files a/Tai_Gi_Zu_Im_Bun.xlsx and b/Tai_Gi_Zu_Im_Bun.xlsx differ diff --git a/a700_Iong_Excel_Piau_Zu_Im.py b/a700_Iong_Excel_Piau_Zu_Im.py index 5f0c76e..c13b4c0 100644 --- a/a700_Iong_Excel_Piau_Zu_Im.py +++ b/a700_Iong_Excel_Piau_Zu_Im.py @@ -1,98 +1,24 @@ -import getopt -import math +# ========================================================================= +# 當 Tai_Gi_Zu_Im_Bun.xlsx 檔案已完成人工手動注音後,執行此程式可完成以下工作: +# (1) A730: 將人工填入之拼音及注音,抄寫到漢字的上方(拼音)及下方(注音)。 +# (2) A740: 將【漢字注音】工作表的內容,轉成 HTML 網頁檔案。 +# (3) A750: 將 Tai_Gi_Zu_Im_Bun.xlsx 檔案,依 env 工作表的設定,另存新檔到指定目錄。 +# ========================================================================= import os +import subprocess import sys -import xlwings as xw +# 指定虛擬環境的 Python 路徑 +venv_python = os.path.join(".venv", "Scripts", "python.exe") if sys.platform == "win32" else os.path.join(".venv", "bin", "python") -import settings -from a730_將漢字注音填入 import thiam_zu_im -from p730_Tng_Sing_Bang_Iah import tng_sing_bang_iah +# 依次執行三個 Python 檔案 +# (1) A730: 將人工填入之拼音及注音,抄寫到漢字的上方(拼音)及下方(注音)。 +subprocess.run([venv_python, "a730_將漢字注音填入.py"]) -def get_input_and_output_options(argv): - arg_input = "" - arg_output = "" - arg_user = "" - arg_help = "{0} -i -u -o ".format(argv[0]) +# (2) A740: 將【漢字注音】工作表的內容,轉成 HTML 網頁檔案。 +subprocess.run([venv_python, "a740_漢字注音轉網頁.py"]) - try: - opts, args = getopt.getopt( # pyright: ignore - argv[1:], "hi:u:o:", ["help", "input=", "user=", "output="] - ) - except Exception as e: - print(e) - print(arg_help) - sys.exit(2) - - for opt, arg in opts: - if opt in ("-h", "--help"): - print(arg_help) # print the help message - sys.exit(2) - elif opt in ("-i", "--input"): - arg_input = arg - elif opt in ("-u", "--user"): - arg_user = arg - elif opt in ("-o", "--output"): - arg_output = arg - - print("input:", arg_input) - print("user:", arg_user) - print("output:", arg_output) - - return { - "input": arg_input, - "user": arg_user, - "output": arg_output, - } - -if __name__ == "__main__": - # ========================================================================= - # (1) 取得需要注音的「檔案名稱」及其「目錄路徑」。 - # ========================================================================= - # 取得 Input 檔案名稱 - file_path = settings.get_tai_gi_zu_im_bun_path() - if not file_path: - print("未設定 .env 檔案") - # sys.exit(2) - opts = get_input_and_output_options(sys.argv) - if opts["input"] != "": - CONVERT_FILE_NAME = opts["input"] - else: - CONVERT_FILE_NAME = "Tai_Gi_Zu_Im_Bun.xlsx" - else: - CONVERT_FILE_NAME = file_path - print(f"CONVERT_FILE_NAME = {CONVERT_FILE_NAME}") - - # 打開 Excel 檔案 - wb = xw.Book(CONVERT_FILE_NAME) - - # ========================================================================= - # (2) 分析已輸入的【台語音標】及【台語注音符號】,將之各別填入漢字之上、下方。 - # - 上方:台語音標 - # - 下方:台語注音符號 - # ========================================================================= - thiam_zu_im(wb, '漢字注音', 'V3') - - # ========================================================================= - # (3) 將已注音之「漢字注音表」,製作成 HTML 格式之「注音/拼音/標音」網頁。 - # ========================================================================= - tng_sing_bang_iah(wb, '漢字注音', 'V3') - - # ========================================================================= - # (4) 依據《文章標題》另存新檔。 - # ========================================================================= - wb = xw.Book(CONVERT_FILE_NAME) - setting_sheet = wb.sheets["env"] - new_file_name = str( - setting_sheet.range("C4").value - ).strip() - new_file_path = os.path.join( - ".\\output", - f"【河洛話注音】{new_file_name}" + ".xlsx") - - # 儲存新建立的工作簿 - wb.save(new_file_path) - - # 保存 Excel 檔案 - wb.close() +# (3) A750: 將 Tai_Gi_Zu_Im_Bun.xlsx 檔案,依 env 工作表的設定,另存新檔到指定目錄。 +# subprocess.run([venv_python, "a750_漢字注音存檔.py"]) +subprocess.run([venv_python, "a750_漢字注音存檔.py", "-i", "Tai_Gi_Zu_Im_Bun.xlsx"]) diff --git "a/docs/\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200_\346\274\242\345\255\227\346\263\250\351\237\263.html" "b/docs/\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200_\346\274\242\345\255\227\346\263\250\351\237\263.html" new file mode 100644 index 0000000..6c2b77b --- /dev/null +++ "b/docs/\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200_\346\274\242\345\255\227\346\263\250\351\237\263.html" @@ -0,0 +1,207 @@ + + + + + 《金剛般若波羅蜜經。無為福勝分第十一》【漢字注音】 + + + + + 《金剛般若波羅蜜經。無為福勝分第十一》【漢字注音】 + + +

+bo⁵ㆠㄜˊ +ui⁵ㄨㄧˊ +hok⁴ㄏㆦ +sin³ㄒㄧㄣ˪ +hun¹ㄏㄨㄣˉ +te⁷ㄉㆤ˫ +zap⁸ㄗㄚㆴ˙ +zit⁸ㄐㄧㆵ˙ +

+ +su¹ㄙㄨˉ +phoo⁵ㄆㆦˊ +theh⁸ㄊㆤㆷ˙ + +ju⁵ㆡㄨˊ +hing⁵ㄏㄧㄥˊ +ho⁵ㄏㄜˊ +tiong¹ㄉㄧㆲˉ +soo²ㄙㆦˋ +u⁷ㄨ˫ +sua¹ㄙㄨㄚˉ +soo³ㄙㆦ˪ + +ju⁵ㆡㄨˊ +si⁷ㄒㄧ˫ +sua¹ㄙㄨㄚˉ +tan²ㄉㄢˋ +hing⁵ㄏㄧㄥˊ +ho⁵ㄏㄜˊ + +u⁵ㄨˊ +ㄧ˪ +un⁵ㄨㄣˊ +ho⁵ㄏㄜˊ + +si⁷ㄒㄧ˫ +zu¹ㄗㄨˉ +hing⁵ㄏㄧㄥˊ +ho⁵ㄏㄜˊ +sua¹ㄙㄨㄚˉ + +ling⁵ㄌㄧㄥˊ +ui⁵ㄨㄧˊ +to¹ㄉㄜˉ +put⁴ㄅㄨㆵ + + +su¹ㄙㄨˉ +phoo⁵ㄆㆦˊ +theh⁸ㄊㆤㆷ˙ +gian⁵ㆣㄧㄢˊ + + +sⁿia²ㄒㄧㆩˋ +to¹ㄉㄜˉ + +se³ㄙㆤ˪ +zun¹ㄗㄨㄣˉ + +tan⁷ㄉㄢ˫ +zu¹ㄗㄨˉ +hing⁵ㄏㄧㄥˊ +ho⁵ㄏㄜˊ + +siong⁷ㄒㄧㆲ˫ +to¹ㄉㄜˉ +bo⁵ㆠㄜˊ +soo³ㄙㆦ˪ + +ho⁵ㄏㄜˊ +hong²ㄏㆲˋ +ki⁵ㄍㄧˊ +sua¹ㄙㄨㄚˉ + + +

+ +su¹ㄙㄨˉ +phoo⁵ㄆㆦˊ +theh⁸ㄊㆤㆷ˙ + +gua²ㆣㄨㄚˋ +kim¹ㄍㄧㆬˉ +sit⁸ㄒㄧㆵ˙ +gian⁵ㆣㄧㄢˊ +ko³ㄍㄜ˪ +li²ㄌㄧˋ + +na²ㄋㄚˋ +u⁷ㄨ˫ +sian⁷ㄒㄧㄢ˫ +lam⁵ㄌㆰˊ +zu²ㄗㄨˋ + +sian⁷ㄒㄧㄢ˫ +lu²ㄌㄨˋ +lang⁵ㄌㄤˊ + +ㄧˋ +cit⁴ㄑㄧㆵ +po²ㄅㄜˋ +滿mua²ㄇㄨㄚˋ +ni²ㄋㄧˋ +soo²ㄙㆦˋ +hing⁵ㄏㄧㄥˊ +ho⁵ㄏㄜˊ +sua¹ㄙㄨㄚˉ +soo³ㄙㆦ˪ +sⁿa¹ㄙㆩˉ +cing¹ㄑㄧㄥˉ +tua⁷ㄉㄨㄚ˫ +cing¹ㄑㄧㄥˉ +se³ㄙㆤ˪ +kai³ㄍㄞ˪ + +ㄧˋ +ing⁷ㄧㄥ˫ +poo³ㄅㆦ˪ +si¹ㄒㄧˉ + +tit⁴ㄉㄧㆵ +hok⁴ㄏㆦ +to¹ㄉㄜˉ +m⁷ㄇ˫ + + +su¹ㄙㄨˉ +phoo⁵ㄆㆦˊ +theh⁸ㄊㆤㆷ˙ +gian⁵ㆣㄧㄢˊ + + +sⁿia²ㄒㄧㆩˋ +to¹ㄉㄜˉ + +se³ㄙㆤ˪ +zun¹ㄗㄨㄣˉ + + +hut⁸ㄏㄨㆵ˙ +ko³ㄍㄜ˪ +su¹ㄙㄨˉ +phoo⁵ㄆㆦˊ +theh⁸ㄊㆤㆷ˙ + + +na²ㄋㄚˋ +sian⁷ㄒㄧㄢ˫ +lam⁵ㄌㆰˊ +zu²ㄗㄨˋ + +sian⁷ㄒㄧㄢ˫ +lu²ㄌㄨˋ +lang⁵ㄌㄤˊ + +u⁵ㄨˊ +cu³ㄘㄨ˪ +king¹ㄍㄧㄥˉ +tiong¹ㄉㄧㆲˉ + +nai²ㄋㄞˋ +zi³ㄐㄧ˪ +siu⁷ㄒㄧㄨ˫ +ci⁵ㄑㄧˊ +si³ㄒㄧ˪ +ku³ㄍㄨ˪ +kiat⁴ㄍㄧㄚㆵ +tan²ㄉㄢˋ + +ui⁵ㄨㄧˊ +tha¹ㄊㄚˉ +lang⁵ㄌㄤˊ +suat⁴ㄙㄨㄚㆵ + +li⁵ㄌㄧˊ +cu³ㄘㄨ˪ +hok⁴ㄏㆦ +tiek⁴ㄉㄧㆤ + +sing¹ㄒㄧㄥˉ +zing⁵ㄐㄧㄥˊ +hok⁴ㄏㆦ +tiek⁴ㄉㄧㆤ + + +

+ + + \ No newline at end of file diff --git "a/output/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" "b/output/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" new file mode 100644 index 0000000..f53ed2c Binary files /dev/null and "b/output/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" differ diff --git "a/output2/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" "b/output2/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" new file mode 100644 index 0000000..5e44b69 Binary files /dev/null and "b/output2/\343\200\220\346\262\263\346\264\233\350\251\261\346\263\250\351\237\263\343\200\221\351\207\221\345\211\233\350\210\254\350\213\245\346\263\242\347\276\205\350\234\234\347\266\223\343\200\202\347\204\241\347\202\272\347\246\217\345\213\235\345\210\206\347\254\254\345\215\201\344\270\200.xlsx" differ diff --git a/p700_cu_zu_im.py b/p700_cu_zu_im.py deleted file mode 100644 index 8eec4e8..0000000 --- a/p700_cu_zu_im.py +++ /dev/null @@ -1,101 +0,0 @@ -# ========================================================================= -# 取注音( Cu-zu-im ): 分析已輸入的【台語音標】及【台語注音符號】,將之各別填入漢字之上、下方。 -# - 上方:台語音標 -# - 下方:台語注音符號 -# ========================================================================= -import xlwings as xw - - -def cu_zu_im(CONVERT_FILE_NAME): - # 打開活頁簿檔案 - file_path = CONVERT_FILE_NAME - wb = xw.Book(file_path) - - # 指定來源工作表 - source_sheet = wb.sheets["工作表1"] - source_sheet.select() - - # 取得工作表內總列數 - source_row_no = int( - source_sheet.range("A" + str(wb.sheets[0].cells.last_cell.row)).end("up").row - ) - print(f"source_row_no = {source_row_no}") - - # ========================================================== - # 備妥程式需使用之工作表 - # ========================================================== - sheet_name_list = [ - "缺字表", - "字庫表", - "漢字注音表", - ] - # ----------------------------------------------------- - # 檢查工作表是否已存在 - for sheet_name in sheet_name_list: - sheets = [sheet.name for sheet in wb.sheets] # 獲取所有工作表的名稱 - if sheet_name in sheets: - sheet = wb.sheets[sheet_name] - try: - sheet.select() - sheet.clear() - continue - except Exception as e: - print(e) - else: - # CommandError 的 Exception 發生時,表工作表不存在 - # 新增程式需使用之工作表 - print(f"工作表 {sheet_name} 不存在,正在新增...") - wb.sheets.add(name=sheet_name) - - # 選用「漢字注音表」 - try: - han_ji_tsu_im_paiu = wb.sheets["漢字注音表"] - han_ji_tsu_im_paiu.select() - except Exception as e: - # 处理找不到 "漢字注音表" 工作表的异常 - print(e) - print("找不到:〖漢字注音表〗工作表。") - return False - - # ----------------------------------------------------- - # 將「字串」轉換成「串列(Characters List)」 - # Python code to convert string to list character-wise - def convert_string_to_chars_list(string): - list1 = [] - list1[:0] = string - return list1 - - # ========================================================== - # (1) - # ========================================================== - # 自【工作表1】的每一列,讀入一個「段落」的漢字。然後將整個段 - # 落拆成「單字」,存到【漢字注音表】;在【漢字注音表】的每個 - # 儲存格,只存放一個「單字」。 - # ========================================================== - - source_row_index = 1 - target_row_index = 1 # index for target sheet - # for row in range(1, source_rows): - while source_row_index <= source_row_no: - # 自【工作表1】取得「一行漢字」 - tsit_hang_ji = str(source_sheet.range("A" + str(source_row_index)).value) - hang_ji_str = tsit_hang_ji.strip() - - # 讀到空白行 - if hang_ji_str == "None": - hang_ji_str = "\n" - else: - hang_ji_str = f"{tsit_hang_ji}\n" - - han_ji_range = convert_string_to_chars_list(hang_ji_str) - - # ========================================================= - # 讀到的整段文字,以「單字」形式寫入【漢字注音表】。 - # ========================================================= - han_ji_tsu_im_paiu.range("A" + str(target_row_index)).options( - transpose=True - ).value = han_ji_range - - ji_soo = len(han_ji_range) - target_row_index += ji_soo - source_row_index += 1