Использование рекурсивного поиска файлов и исключение startwith () с pathlib - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу найти рекурсивный поиск всех файлов во всех папках с помощью pathlib, но я хочу исключить скрытые системные файлы, начинающиеся с '.' (например, '.DS_Store') Но я не могу найти такую ​​функцию, как запускается с помощью pathlib. Как я могу достичь стартов с pathlib? Я знаю, как это сделать с ОС.

def recursive_file_count(scan_path):
    root_directory = Path(scan_path)
    fcount = len([f for f in root_directory.glob('**/*') if f.startswith(".")])
    print(fcount)

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

startwith () - это Python строковый метод, см. https://python-reference.readthedocs.io/en/latest/docs/str/startswith.html

Поскольку ваш f является объектом Path, вы должны преобразовать его в строка сначала через str(f)

def recursive_file_count(scan_path):
    root_directory = Path(scan_path)
    fcount = len([f for f in root_directory.glob('**/*') if str(f).startswith(".")])
    print(fcount)
0 голосов
/ 13 апреля 2020

Мое решение:

def recursive_file_count(scan_path):
    root_directory = Path(scan_path)
    fcount = len([f for f in root_directory.glob('**/*') if not str(f.name).startswith(".")])
    print(fcount)
...