Untitled
unknown
plain_text
a year ago
2.7 kB
11
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