Мне нужна программа, которая принимает в качестве параметров имя файла и путь к папке и ищет файл в папке и любой папке, содержащейся в ней, прямо или косвенно. Функция должна возвращать путь к файлу, если он найден, или None, если файл не может быть найден в папке или в любом подкаталоге папки. Функция должна быть рекурсивной.
вот мой код:
def search(fname, path):
for item in os.listdir(path):
next = os.path.join(path, item)
try:
search(next,fname)
except:
return next
это должно выглядеть примерно так:
>>>search('fileA.txt', 'test')
'test\\fileA.txt'
>>>search('fileB.txt', 'test')
'text\\folder2\\fileB.txt'
ЭСТ.
но я могу только получить свой код для поиска fileA.txt, независимо от того, какой файл я говорю, чтобы он искал.
Я попросил учителя помочь, вот что она мне сказала:
** Я вижу несколько проблем:
- В вашей функции нет условия, которое фактически проверяет, нашли ли вы файл. Смотрите следующую проблему, когда работаете над ее изменением.
- Имя не будет соответствовать файлу, который ему соответствует, если вы уже добавили путь к нему. Вам нужно проверить имя файла, прежде чем создавать полный путь к файлу, иначе у вас не будет способа его сопоставить.
- Вы ничего не делаете со значениями, которые возвращаются из рекурсивного вызова. Они должны возвращать либо пути, либо None, и вы не проверяете, что возвращается. **