import os import re import typing # pylint: disable=too-few-public-methods class HippocampalSubfieldsVolumeFile: # https://surfer.nmr.mgh.harvard.edu/fswiki/HippocampalSubfields FILENAME_PATTERN = r'^(?P[lr])h\.hippoSfVolumes' \ r'(?P-T1)?(-(?P.+?))?\.v10.txt$' FILENAME_REGEX = re.compile(FILENAME_PATTERN) @staticmethod def find(root_dir_path: str, filename_regex: typing.Pattern = FILENAME_REGEX) -> typing.Iterator[str]: for dirpath, _, filenames in os.walk(root_dir_path): for filename in filter(filename_regex.search, filenames): yield os.path.join(dirpath, filename)