Как обойти ошибку уже существующего файла при переносе?
Есть функция которая переносит файлы. Но если в папке куда нужно перенести уже существует файл с таким же названием - будет ошибка. Как этого избежать?
ignore_list - папки в которые сортируются файлы files_paths - множество в котором пути ко всем файлам который нужно переместить path_for_sort - путь к папке в которую нужно переместить файл
Таким образом если есть два одинаковых 'Test.txt' в двух разных папках из которых файлы нужно переместить, выведет ошибку:
shutil.Error: Destination path 'C:\New folder\documents\New_Text_Document.txt' already exists
IGNORE_LIST = ["images", "videos", "documents", "audios", "archives"]
# dict with files in its type of format
groups_of_files = {
"images": [],
"videos": [],
"documents": [],
"audios": [],
"archives": [],
}
def sort_files(
paths_to_files: set, file_groups: dict, path_folder_for_sort: str, ignore_list
) -> None:
# This func moves all files to folders for sorted
for path_to_file in paths_to_files:
# get previously folder (/ARCHIVES/file.rar)
previously_folder = split(path_to_file)[0].split("\\")[-2]
for name_of_group, formats_list in file_groups.items():
# check if folder in ignore list
if (
split(path_to_file)[-1] in formats_list
and previously_folder not in ignore_list
):
if Path(path_to_file) != Path(
path_folder_for_sort
+ "\\"
+ name_of_group
+ "\\"
+ split(path_to_file)[-1]
):
shutil.move(
path_to_file, path_folder_for_sort + "\\" + name_of_group + "\\"
)
sort_files(files_paths, groups_of_files, path_for_sort, IGNORE_LIST)