コメントを考慮して、パスのどこに名前が表示されているかは関係ありません(つまり、「C:\ ABC123 \ test.png」と「C:\ vol01 \ ABC123.xml」の両方がクエリ「ABC123」と一致します) 、ファイルシステムパスの構造は考慮されていませんが、純粋な文字列照合を行うことができます。
paths
すべてのパスnames
のリストであり、すべての名前のリストであり、そしてあなたname
が探している名前である
(path for path in paths if name in path)
名前に一致するすべてのパスを生成するジェネレータです。
dict ( ( (name, [path for path in paths if name in path] ) for name in names) )
キーが名前であり、値が対応する名前を含むすべてのパスである辞書を作成します。あなたはそれをそのように何らかの形で使うことができます:
paths = [....]
names = [....]
d = dict ( ( (name, [path for path in paths if name in path] ) for name in names) )
print ('The name "ABC" is contained in: {}'.format (d ['ABC'] ) )
print ('The name "XYZ" is contained in: {}'.format (d ['XYZ'] ) )
print ('The name "pron" is contained in: {} different paths'.format (len (d ['pron'] ) if 'pron' in d else 0) )