Как написать скрипт, который будет прерываться, если в указанной директории найдено два файла с похожими названиями?

Требуется скрипт, который проверяет количество файлов с похожими названиями в директории. Если есть два или более файла с похожими названиями, скрипт должен прерываться. Если в директории есть только один файл с похожим названием, скрипт должен завершаться успешно. Например, в директории /home/user есть файлы с названиями test14, test12, test123 и test1234. Пожалуйста, помогите улучшить формулировку данного вопроса.
  • 19 октября 2023 г. 10:39
Ответы на вопрос 2
Как написать скрипт на Python для проверки наличия двух и более файлов с похожими названиями в указанной директории и прерывания скрипта в таком случае?

Вот пример кода для реализации такого скрипта:

```python
import os

def check_similar_files(directory):
    files = os.listdir(directory)
    similar_names = set()

    for file in files:
        base_name = os.path.basename(file)
        file_name = os.path.splitext(base_name)[0]
        similar_names.add(file_name)

    for name in similar_names:
        count = sum(name in file for file in files)
        if count >= 2:
            print(f"Найдено {count} файла/файлов с похожим названием: {name}")
            return

    print("Ни одного файла с похожим названием не найдено.")

# Пример использования:
directory = "/home/user"
check_similar_files(directory)
```

В этом коде мы используем модуль `os` для получения списка файлов в указанной директории. Затем мы перебираем каждое файловое имя и проверяем, есть ли в директории другие файлы с похожим именем. Если находим два или более файла с похожим названием, мы прерываем выполнение функции и выводим сообщение о нахождении таких файлов. Если не находим файлов с похожими именами, выводим сообщение о их отсутствии.
Если выполнение команды "ls -1" и фильтрация по строкам, содержащим "test" с помощью "grep -c", равно нулю, то выполняется определенная ветка кода.
Похожие вопросы