У меня есть этот фрагмент кода из другого проекта:
import pathlib
p = pathlib.Path(root)
for img_file in p.rglob("*.jpg"):
#Do something for each image file
Он находит все файлы jpg во всем каталоге и его подпапках и воздействует на них.
У меня есть каталог, содержащий более 100 «основных» папок, каждая из которых имеет комбинацию из 2 подпапок - позвольте называть их «FolderA» и «FolderB». В основных папках может быть одна, обе или ни одна из этих вложенных папок.
Я хочу запустить фрагмент кода для всех файлов PDF, содержащихся в подкаталогах «FolderB», но игнорировать все файлы в основных папках и папках «FolderA».
Может ли кто-нибудь помочь мне изменить приведенный выше код, чтобы продолжить?
Большое спасибо!
Я уверен, что могу: я нашел библиотеки, относящиеся к моей проблеме. Я нашел фрагмент кода, который помогает мне найти ответ (см. Выше). Я указал ту часть, над которой я борюсь (только возвращаемые файлы, которые соответствуют желаемой папке). Я искал в Google и stackoverflow разными способами задать вопрос (моя проблема в том, что я новичок и часто не знаю названия концепций, которые ищу). Может быть, ты сможешь направить меня к концепции, которую я мог бы прочитать и найти для себя ответ?
Вы смотрели на ценности, которые возвращаете от p.rglob?
Возвращаемые значения соответствуют каждому файлу, соответствующему ".jpg" в конце строки пути. Но как мне попытаться указать кусок текста, т.е. "FolderB", который встречается в середина пути и затем возвращает эти файлы? Строка-заполнитель «FolderB», которую я использовал в этом случае, может быть в имени файла, содержащегося в «FolderA». Таким образом, предыдущие попытки просто изменить ".jpg" на "FolderB" вернули несколько неверных файлов. (извините, звездочки, похоже, испортили форматирование комментария! у меня есть один перед .jpg, а также до и после FolderB) @ScottHunter
Если значения содержат путь к каждому файлу, вы можете определить, в какой папке находится каждый из них, и действовать соответствующим образом.





Вы можете изменить шаблон, чтобы просто искать то, что вам нужно:
from pathlib import Path
p = Path("root")
for file in p.rglob("*FolderB/*.pdf"):
# Do something with file
pass
Можете ли вы сами продемонстрировать усилия любой в решении этой проблемы?