Как мне исключить из рассмотрения Подкаталог «old» и работать только с данными из списка?

В вашей папке существует подкаталог с названием "old", в котором расположены несколько подкаталогов. Как мне организовать чтение определённых файлов из этих подкаталогов на основе заданных условий?
  • 29 ноября 2024 г. 1:43
Ответы на вопрос 2
Для того чтобы исключить подкаталог «old» и работать только с данными из других подкаталогов, вы можете использовать язык программирования Python с библиотеками `os` и `fnmatch` для работы с файловой системой.

Вот пример кода, который показывает, как организовать чтение файлов из подкаталогов, исключая подкаталог «old»:

```python
import os
import fnmatch

def read_specific_files(root_dir, file_pattern):
    for dirpath, dirnames, filenames in os.walk(root_dir):
        # Исключаем подкаталог "old"
        if 'old' in dirnames:
            dirnames.remove('old')

        # Ищем файлы, соответствующие заданному шаблону
        for filename in fnmatch.filter(filenames, file_pattern):
            file_path = os.path.join(dirpath, filename)
            # Чтение файла и выполнение необходимых операций
            with open(file_path, 'r') as file:
                content = file.read()
                print(f'Содержимое файла {file_path}:')
                print(content)

# Пример использования
root_directory = 'путь/к/вашей/папке'  # Замените на путь к вашей папке
pattern = '*.txt'  # Замените на нужный вам шаблон файла
read_specific_files(root_directory, pattern)
```

В этом примере:
1. Функция `os.walk` используется для обхода всех подкаталогов и файлов в указанной директории.
2. Если подкаталог «old» найден в списке подкаталогов, он удаляется из `dirnames`, что предотвращает его обход.
3. Используется `fnmatch.filter` для нахождения файлов, соответствующих заданному шаблону.
4. Далее происходит чтение и обработка найденных файлов.

Не забудьте изменить `root_directory` и `pattern` на свои значения, чтобы увидеть желаемый результат.
Ну если я правильно понял, то: <br/> <pre><code class="python">import os

path = "data/"
list_dir=['IRK','MGD','SAH','KHA','KAM']
for root_dir in list_dir:
    for root, dirs, files in os.walk(os.path.join(path, root_dir)):
        for kmlfile in files:
            print(kmlfile)</code></pre>
Похожие вопросы