У меня есть исполняемый файл с именем «MyCamelCase.exe» в текущем каталоге скриптов Python и в подпапке «MyFolder».Кроме того, в «MyFolder» есть еще один исполняемый файл «DontWannaFindThis.exe».Я хотел бы найти все вхождения «MyCamelCase.exe» в текущем каталоге и всех подпапках.Поэтому я использую Path.rglob (pattern):
from pathlib import Path
if __name__ == '__main__':
[print(f) for f in Path.cwd().rglob('MyCamelCase.exe')]
[print(f) for f in Path.cwd().rglob('.\MyCamelCase.exe')]
[print(f) for f in Path.cwd().rglob('*.exe')]
Этот код приводит к следующему выводу:
D:\PyTesting\mycamelcase.exe
D:\PyTesting\MyFolder\mycamelcase.exe
D:\PyTesting\mycamelcase.exe
D:\PyTesting\MyFolder\mycamelcase.exe
D:\PyTesting\MyCamelCase.exe
D:\PyTesting\MyFolder\DontWannaFindThis.exe
D:\PyTesting\MyFolder\MyCamelCase.exe
Почему rglob возвращает строку только с нижним регистром, еслиa предоставить полное имя файла и, с другой стороны, вернуть строку, содержащую исходную нотацию, при использовании шаблона с '. *'?Примечание: то же самое происходит при использовании Path.glob ()