Last active
April 24, 2023 05:07
-
-
Save keoy7am/ede03eeab687f2d7c4b3214af5377b6d to your computer and use it in GitHub Desktop.
基於OpenCC的全資料夾自動翻譯python腳本
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
import os | |
#################################################### | |
# 若 src_folder == dst_folder 則會直接將原始檔案覆蓋 # | |
# 需注意是否有程式(如:vsc)在使用原始檔案,若有,請先關閉 # | |
#################################################### | |
src_folder = "I:\git\Repo" | |
dst_folder = "I:\git\Repo" | |
# dst_folder = "I:\git\Repo\src_cc" | |
cc_json = r"C:\Users\Usr\Downloads\OpenCC\build\share\opencc\s2twp.json" # OpenCC 配置文件 | |
cc_exe_path = r"C:\Users\Usr\Downloads\OpenCC\build\bin\opencc.exe" # OpenCC 執行檔路徑 | |
can_copy = src_folder != dst_folder # 是否可以直接複製檔案 | |
### 自定義轉換檔案類型 ### | |
# allow_ext = ['.js', '.jsx', '.ts', '.tsx', '.json', '.html', '.css', '.scss', '.less', '.md', '.txt','.vue'] # vue | |
allow_ext = ['.go', '.sql', '.yam', '.json', '.html', '.css', '.scss', '.less', '.md', '.txt',] # go | |
if not os.path.exists(dst_folder): | |
print('dst_folder created!!') | |
os.makedirs(dst_folder) | |
for root, dirs, files in os.walk(src_folder): | |
for d in dirs: | |
dir = os.path.join(root, d) | |
dst_dir = dir.replace(src_folder, dst_folder) | |
if not os.path.exists(dst_dir): | |
os.makedirs(dst_dir) | |
print('created: ', dst_dir) | |
for f in files: | |
src_file = os.path.join(root, f) | |
dst_file = os.path.join(root.replace(src_folder, dst_folder), f) | |
if os.path.splitext(src_file)[1] in allow_ext: | |
print('convert: ', src_file, ' to ', dst_file) | |
os.system(f'{cc_exe_path} -i {src_file} -o {dst_file} -c {cc_json}') | |
elif can_copy: | |
print('copy: ', src_file, ' to ', dst_file) | |
os.system(f'copy {src_file} {dst_file}') | |
print('finished convert!') | |
if can_copy: | |
print('------------------------------------') | |
os.rename(src_folder, os.path.join(src_folder + '_original')) | |
os.rename(dst_folder, src_folder) | |
print(f'rename {src_folder} to {src_folder + "_original"}') | |
print(f'rename {dst_folder} to {src_folder}') | |
print('------------------------------------') | |
print('finished rename!') | |
print('script finished!') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment