Untitled

 avatar
unknown
plain_text
a year ago
2.7 kB
8
Indexable
import os
import re

import unicodedata

BANG_XOA_DAU = str.maketrans(
    "ÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬĐÈÉẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴáàảãạăắằẳẵặâấầẩẫậđèéẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵ",
    "A" * 17 + "D" + "E" * 11 + "I" * 5 + "O" * 17 + "U" * 11 + "Y" * 5 + "a" * 17 + "d" + "e" * 11 + "i" * 5 + "o" * 17 + "u" * 11 + "y" * 5
)


def traverse_folder(folder_path):
    file_list = []
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_list.append(os.path.join(root, file))
    return file_list


def xoa_dau(txt: str) -> str:
    if not unicodedata.is_normalized("NFC", txt):
        txt = unicodedata.normalize("NFC", txt)
    return txt.translate(BANG_XOA_DAU)


def thay_the_ky_tu_dac_biet(txt: str) -> str:
    special_char_pattern = re.compile(r'[^a-zA-Z0-9/_\-\.]')
    return special_char_pattern.sub(' ', txt)

def file_name_remove_epub(txt: str) -> str:
    return '.'.join(txt.split('.')[:-2]) + '.json'

file_new_paths = []
folder_path = r'I:\sonat\book\ebookvie_book_json'
data_book_file_paths = traverse_folder(folder_path)

file_old_paths = []


for old_path in data_book_file_paths:

    directory, filename = os.path.split(old_path)
    filename_no_accent = xoa_dau(filename)
    filename_replaced = thay_the_ky_tu_dac_biet(filename_no_accent)
    file_name_json = file_name_remove_epub(filename_replaced)

    index_count = 0

    while True:
        if index_count == 0:
            file_name_json_new = file_name_json
        else:
            file_name_json_new = '.'.join(file_name_json.split('.')[:-1]) + ' ' + str(index_count) + '.json'

        contain = False
        

        for i in range(len(file_new_paths)):
            if file_name_json_new.lower() == file_new_paths[i].lower():
                contain = True
                break

        if contain == False:
            file_name_json = file_name_json_new
            break

        index_count += 1

                
    file_new_paths.append(file_name_json)
    
    new_path = os.path.join(directory, file_name_json)
    print(f"Old path : {old_path}")
    print(f"New path : {new_path}")
    print("-" * 20)
    
    # Đổi tên file từ đường dẫn cũ sang đường dẫn mới
    
    os.rename(old_path, new_path)
    # print(f"Đã đổi tên: {old_path} -> {new_path}")
Editor is loading...
Leave a Comment