Как проверить, является ли файл элементом произвольно глубокого дерева папок в Python? - PullRequest
0 голосов
/ 16 марта 2020

Я перебираю дерево файлов в Python, и для КАЖДОГО файла мне нужно проверить, содержит ли это дерево файлов файл, названный так же, как и оригинал, но «ca» заменяется на «wpa». Например, для файла 'ca123.txt' Я должен был бы проверить, существует ли файл с именем 'wpa123.txt'.

Проблема в том, что результат, который я получаю с помощью следующего кода, выполняет поиск только на том уровне, в котором он находится в данный момент. не на всем дереве. Как я могу искать по всему дереву файлов с текущей позиции?

import os

n=0
path=input()
for root, dirs, files in os.walk(path):
    for file in files:
        if file.replace('ca','wpa') in files:
            n+=1
print(n)

1 Ответ

0 голосов
/ 16 марта 2020

Используйте pathlib и glob вместо os.walk ().

import glob
from pathlib import Path

n=0
path=Path(input())
files = [f.name for f in p.glob("**/*")]
for file in files:
    if 'ca' in file:
        if file.replace('ca','wpa') in files:
            n+=1
print(n)
...