43 Рекурсивный обход файлов Python

  Рет қаралды 54,721

egoroff_channel

egoroff_channel

Күн бұрын

🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/cou...
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7...
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_eg...
egoroffartem.py...
В видео разберем пример как при помощи рекурсии можно обойти все содержимое каталога
egoroffartem.py...
На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
Все видео этого курса можете найти на сайте
egoroffartem.py...
или в Вк
videos-...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_e...
python....
В данном группе можете найти информацию о новых видео и задать вопросы

Пікірлер: 77
@egoroffchannel
@egoroffchannel 3 ай бұрын
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
@reaperzmcvell6172
@reaperzmcvell6172 5 жыл бұрын
Друг отличные курсы,пожалуйста не забрасывай!!!!!
@egoroffchannel
@egoroffchannel 5 жыл бұрын
спасибо за добрые слова)
@onemasterlomaster1829
@onemasterlomaster1829 5 жыл бұрын
а вы лайки ставьте человеку хотябы за труды, а то 314 просмотров а лайков всего 30, то есть всего 10% лайк поставило, а остальным трудно? Но зато все хотят продолжения! Но вот просто открыть видос в фоне в трех браузерах без звука и даже на низком разрешении это совсем невыполнимая задача, пока смотрите свежий видос!
@user-fy1dn6nn9v
@user-fy1dn6nn9v Жыл бұрын
Поддержу. Действительно, один из немногих курсов, на которых я понимаю что мне объясняют и как это работает. Отличный курс (прохожу на Stepik), отличный преподаватель. Спасибо за труд!
@AdiletAbylkairov
@AdiletAbylkairov 4 жыл бұрын
Вообще я очень редко пишу комментарии, но чел тут реально нельзя не поблагодарить тебя, у тебя самые понятные уроки, желаю что бы канал и дальше развивался!
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov 2 жыл бұрын
Артём, благодарю! Отличный урок 🔥🤝👍
@matthewkraev
@matthewkraev 5 жыл бұрын
Если вдруг кому то интересно... Для Mac OS, путь указывается несколько иначе... path = "/Users/.../.../..." Соответственно поменяется и строчка с добавлением i к path: print("Спускаемся " + path + "/" + i) PS Артём, Спасибо за очень крутые объяснения!
@FortKH
@FortKH 2 жыл бұрын
Для этого существует функция os.sep
@user-px1mp7bs2w
@user-px1mp7bs2w 3 жыл бұрын
Как всегда все доступно и понятно, браво)) удачи в развитии канала))
@ssd3whs727e
@ssd3whs727e 4 жыл бұрын
Артем, большое спасибо за труд. Где-то в комментах был вопрос по классам, вот тоже присоединяюсь. Было бы очень круто увидеть разбор использования конструктора, атрибутов, декораторов и т.д... Вообще супер канал, отличный курс! П.с. подборка фильмов повеселила, научная фантастика между Тарантино, такой себе бутерброд))
@LastWeg
@LastWeg 4 жыл бұрын
полезное видео, благодарю за проделанную работу
@user-jh6nm9rm4g
@user-jh6nm9rm4g 3 жыл бұрын
Спасибо, добрый человек!
@user-yo7kq4lr7j
@user-yo7kq4lr7j 2 жыл бұрын
Спасибо большое!!! Очень круто!!!!
@dochastalina8073
@dochastalina8073 4 жыл бұрын
Смотрю. Учусь. Интересно. Спасибо!
@user-cm5fd9mz5r
@user-cm5fd9mz5r 11 ай бұрын
Спасибо большое за ваше видео! Я как раз столкнулась с похожей задачей и долго не понимала, что делать, потому что из os, знала только listdir. ❤
@reclreclur7203
@reclreclur7203 Жыл бұрын
Чотко, спасибо за уроки Артем!
@user-ey6dh8jz7d
@user-ey6dh8jz7d 2 жыл бұрын
Домашнее задание: import os a = input('Enter file name: ') b = input('Enter directory for search: ') def fileSearch(fileName, path): for i in os.listdir(path): if i == fileName: #Происходит проверка совпадения найденных файлов print('Your file found at',path+'\\'+fileName) if os.path.isdir(path+'\\'+i): #Рекурсивная функция (функция вызывается, если путь является папкой) fileSearch(fileName, path+'\\'+i) fileSearch(a,b) Я пробовал сделать задание в соответствии с приведенным примером, но дело в том, что из-за "спама" директориями выводимое сообщение с найденным файлом остается между остальными выведенными сообщениями. Если вы знаете способ, как изменить алгоритм таким образом, чтобы найденный файл выводился после "спама", прошу поделиться.
@ivan_kevlar
@ivan_kevlar 4 жыл бұрын
Поиск файла в папке: import os path=input() name=input() def obhod(path): for i in os.listdir(path): if (i == name): print(path + '\\' + i) if os.path.isdir(path+'\\'+i): obhod(path+'\\'+i) obhod(path)
@user-ss3kn9sc8m
@user-ss3kn9sc8m 2 жыл бұрын
Очень круто!
@He1LBoy34
@He1LBoy34 5 жыл бұрын
Спасибо за урок =)
@jojoi4818
@jojoi4818 5 жыл бұрын
Жалко, что можно поставить только один лайк!
@ahat24
@ahat24 4 жыл бұрын
Очень помог, спасибо)
@tihon4979
@tihon4979 5 жыл бұрын
Вот это уже становится интересным!!!! ;) Интересно какие названия файлов начали парсить... passwords.txt ? xD
@tihon4979
@tihon4979 5 жыл бұрын
Было бы интересно написать парсер файлов на наличие определенного текста в строке. Полезно бывает.
@egoroffchannel
@egoroffchannel 5 жыл бұрын
@@tihon4979 название в названии файла или в содержимом файла?
@tihon4979
@tihon4979 5 жыл бұрын
@@egoroffchannel сейчас бы пригодился скрипт проверяющий все файлы в папке и записывающий в новый текстовый файл те строки, которые содержат заданное инпутом значение. Т.е. название в содержимом файлов.
@tihon4979
@tihon4979 5 жыл бұрын
@@egoroffchannel Я вот так сделал: import os path = input('Введите путь до папки: ') znach = input('Введите значение для поиска: ') file = '' out = 'output.txt' def obhod(path): # функция для обхода дирикторий for i in os.listdir(path): # обход указанной директории output_filename = open(out, 'a', encoding = 'Latin-1') #открытие файла в режиме записи (добавления данных) put = path + '/' + i # переменная в которую записывается путь до файла + '/' + название файла: (i) if os.path.isfile(put): # если i-является файлом, то: print(i, '
@tihon4979
@tihon4979 5 жыл бұрын
@@egoroffchannel Подскажи, пожалуйста, как в моем коде сделать так чтобы выводилась и записывалась в файл output.txt не только та строка, которая содержит заданное значение, но и несколько строк после неё? мне нужно еще + 2 строки ниже найденной записывать.
@mr.tvisteroae7452
@mr.tvisteroae7452 Жыл бұрын
захожу из за одного вопроса который непонятен в платном курсе а затягивает на несколько видео
@БорисБондаренко-ы1л
@БорисБондаренко-ы1л 2 жыл бұрын
Благодарю за замечательный урок)
@suprun1982
@suprun1982 5 жыл бұрын
import os path = r"C:\Media\ФІЛЬМИ ВІД ВОВИ\FILM" def obhoddir(d, name = str(input("bмя файла:"))): for i in os.listdir(d): if os.path.isdir(d + '\\' + i): obhoddir(d + '\\' + i) if os.path.isfile(d + '\\' + i): if name == i: print(d) obhoddir(path)
@suprun1982
@suprun1982 3 жыл бұрын
@Кирилл Веденин загуглите
@andriiew325
@andriiew325 4 жыл бұрын
За "Интерстеллар" отдельный лайк!!!
@hateUglys
@hateUglys 4 жыл бұрын
такой вариант поиска файла def search(path,name,level=1): print("Level=", level, "Content: ", os.listdir(path)) for i in os.listdir(path): if os.path.isfile(path+"\\"+i) and i==name: print('--------------') print("Файл", name, "найден по адресу", path+"\\"+i) print('--------------') elif os.path.isdir(path+"\\"+i): print("Down to ->",path+"\\"+i) search(path+"\\"+i,name,level+1) print("< - Up to",path) path='путь' name="имя" search(path,name)
@CCxYeahBoyyy
@CCxYeahBoyyy 2 жыл бұрын
Это гениально
@dmitrymitrofanov3920
@dmitrymitrofanov3920 3 жыл бұрын
спасибо
@alex_pure
@alex_pure Жыл бұрын
import os discName = input('Введите букву диска: ') + ':\\' fileName = input('Введите имя файла для поиска: ') def search(path): for i in os.listdir(path): if os.path.isdir(path + '\\' + i): search(path + '\\' + i) if i == fileName: return print(f'Файл находится в директории: {path}') search(discName)
@user-uv2xu2or3f
@user-uv2xu2or3f 2 жыл бұрын
интерстеллАр - это было что-то на татарском)))))
@user-fd7cj7oq9x
@user-fd7cj7oq9x 2 жыл бұрын
Домашнее задание: import os filmPath = 'D:\\Фильмы' def obhodFile(pathF, fileSerch, level=1): print('Level-', level, 'Content:', os.listdir(pathF)) if os.listdir(pathF).count(fileSerch) > 0: print(fileSerch, 'в', pathF) for i in os.listdir(pathF): if os.path.isdir(pathF + '\\' + i) == True: obhodFile(pathF + '\\' + i,fileSerch, level + 1) obhodFile(filmPath, 'Актеры криминального чтива.txt')
@_mrmark
@_mrmark Жыл бұрын
8:40 Я не нудный, но пайчарм сразу подчеркнул ошибку.
@alex_pure
@alex_pure Жыл бұрын
Это предупреждение, а не ошибка. Локальное имя совпадает с глобальным. Если ты понимаешь, что делаешь, то просто проигнорируй.
@user-hr8re7hk5h
@user-hr8re7hk5h 4 жыл бұрын
Забавно, что в даже в переходе на следующее видео есть рекурсия:) Артем, большое спасибо за подробные и понятные уроки!
@user-yf9xy3og9b
@user-yf9xy3og9b 4 жыл бұрын
Единственное что я не понимаю из курса это рекурсия. Смотрю на код и глаза разбегаются в разные стороны)
@user-ix7lb1sx4k
@user-ix7lb1sx4k 4 жыл бұрын
Ни кто не видел обучающий материал, как сделать рекурсивный обход файлов на Python, чтобы сразу было в коде, как что - то найти с регулярным выражением в текстовых файлах, например какое то слово или что - то ещё, изменив регулярку? При этом чтобы это были не независимые по смыслу строки, а тексты документации.
@alexandershahbazov1374
@alexandershahbazov1374 5 жыл бұрын
Есть ли удобный способ запустить программу двойным кликом? Потом, будут ли примеры GUI приложений? Далее можно будет рассказать как используется Питон для разных сторон разработок (игры, странички, приложения для ПК или еще для чего-то)? Не обязательно приводить подробные примеры, просто сказать ваше мнение на этот счет. Хотя, конечно, было бы замечательно пройтись по всем этим сторонам самым простым способом, чтобы нам было наглядно видно, что Питон это делает.
@egoroffchannel
@egoroffchannel 5 жыл бұрын
если питон установлен, то можно по файлу формата .py кликать как по обычным программам и они запускаются. спасибо за предложение, подумаю что и как можно показать по поводу использования питона
@alexandershahbazov1374
@alexandershahbazov1374 5 жыл бұрын
@@egoroffchannel Спасибо
@cyberlegioner8771
@cyberlegioner8771 4 жыл бұрын
Есть к примеру pyinstaller. Соберёт все в 1 файл, и будет тебе счастье двойного клика, и на win и на linux. Все зависимости подтянет. Ну а так если в win установлен python, то двойным кликом запуститься. Но если gui, например pyside, то привет pip(придется устанавливать pyside). И чтобы консоль не выскакивала, нужно в win file.py , расширение поменять на file.pyw А вообще советую linux использовать. Там все проще, намного!
@arsennedovis6455
@arsennedovis6455 4 жыл бұрын
obxodFile :)
@MaksimSukhodolov
@MaksimSukhodolov 2 жыл бұрын
Как же это было смешно с тем что видео с циклом про рекурсию ты сделал с рекурсией(в конце цикла видео опять попадаешь в начало цикла про рекурсию)
@user-wg2vt4oq4j
@user-wg2vt4oq4j 3 жыл бұрын
Не работает. При запуске интерпретатора высвечивается синтаксическая ошибка
@mikhalpalych
@mikhalpalych 3 жыл бұрын
Можете помочь? Понимаю, что написал хрень, но конкретно где что-то не то, понять не могу Находит только файлы, которые находятся в самом path, но в других папках не находит import os path = 'C:\Games\Valheim' fileName = 'browscap.ini' def obhodfilov(path, fileName): print('Поиск файла ' + fileName + ' в ', path) for i in os.listdir(path): if i == fileName: return path + '\\' + i elif os.path.isdir(path + '\\' + i): obhodfilov(path + '\\' + i, fileName) print('Файл ', fileName, ' расположен в ', obhodfilov(path, fileName))
@LusinaHarutyunyan
@LusinaHarutyunyan 3 жыл бұрын
Дорогой Артём, пожалуйста дайте ссылку на ''Разбор задачи на рекурсию "Нумеролог"'' на boosty.
@egoroffchannel
@egoroffchannel 3 жыл бұрын
boosty.to/egoroff_channel/posts/c3a3c5b6-dc53-43ce-a0b8-76ac49104b84
@LusinaHarutyunyan
@LusinaHarutyunyan 3 жыл бұрын
@@egoroffchannel спасибо!
@user-dn9yx1od1b
@user-dn9yx1od1b 5 жыл бұрын
Сук, ИНТЕРСТЕЛЛÁР. Это было не просто, но я дослушал
@shining_intellegence
@shining_intellegence 4 жыл бұрын
тебя в гугле забанили? ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%81%D1%82%D0%B5%D0%BB%D0%BB%D0%B0%D1%80
@user-hj6kk9rb6b
@user-hj6kk9rb6b 3 жыл бұрын
Подскажите как мне искать файлы в корне диска С:\
@maximchervonoshtan2059
@maximchervonoshtan2059 5 жыл бұрын
Когда указываю путь к одной или иной папке, у меня всё время выводит одно и тоже. То есть , выводит путь только к одной папке
@maximchervonoshtan2059
@maximchervonoshtan2059 5 жыл бұрын
Я так понимаю он всегда будет искать в текущей директории?
@user-sd7le8xj4z
@user-sd7le8xj4z 2 жыл бұрын
Вот бы еще всё это дело в шаблон Django отдать - цены бы не было этому видео.
@dieselekin
@dieselekin 3 жыл бұрын
вот уважаемый ведущий - у меня бомбит у от вашей манеры - вы назвали переменную(path) именем метода(os.path) - это нормально? или не очень т.к. я на основе вашего кода начал переделывать свою прогу - это меня вывело из колеи спасибо за внимание
@alex_pure
@alex_pure Жыл бұрын
Спасибо, что обратили на это внимание - теперь буду знать.
@kreved52
@kreved52 4 жыл бұрын
Доработал программу, чтобы искала файл, но к сожалению не смог сделать без глобальной переменной find_name,писало вот такую ошибку UnboundLocalError: local variable 'find_name' referenced before assignment в python кто знает, отпишитесь) import os path = "C:\\Users\\Kreved\\Рабочий стол\\test" name = "find.txt" find_name = '' def obhod(path,name, level=1): global find_name print("Level=", level, "Content:", os.listdir(path)) for i in os.listdir(path): if os.path.isdir(path + '\\'+ i): print("Get down:",path + '\\'+ i ) obhod(path + '\\'+ i,name, level+1 ) print("Return:", path ) if name in os.listdir(path): find_name = path print(find_name) obhod(path,name) print("The file you are looking for is in", find_name)
@Herifs
@Herifs 4 жыл бұрын
1:37 вы нет, а я пин понг на андроид делаю🌚😉
@ineednew9437
@ineednew9437 4 жыл бұрын
на pygame?
@user-vs3yh4dn7l
@user-vs3yh4dn7l 4 жыл бұрын
всё здорово, но неправильное ударение на "Интерстеллар" режет слух. Не уверен в произношении - погугли или используй то, в чём уверен :(
@dmitryts9093
@dmitryts9093 4 жыл бұрын
import os path = "..." #Имя директории def obxodFile(path, name): #функция обхода папок print("Inside folder:", os.listdir(path)) #Вывод содержимого папки for i in os.listdir(path): #Обход содержимого папки if os.path.isdir(path+"\\"+i): #Вход в папку директории print("Спускаемся", path+"\\"+i) for j in os.listdir(path+"\\"+i): #Обход содержимого if j == name: print("Поздравляю, вы нашли:", name) obxodFile(path+"\\"+i, "...") print("Возвращаемся", path) obxodFile(path, "...") Сделал поиск вот так, не сильно заморачивался) То есть если функция внутри функции, то заходить в папки, в которые уже заходили не будет ? для этого рекурсия нужна?
@user-gm8kf7jj1d
@user-gm8kf7jj1d 3 жыл бұрын
Спасибо!
44 Функция enumerate Python
5:33
egoroff_channel
Рет қаралды 47 М.
Самое неинтересное видео
00:32
Miracle
Рет қаралды 2 МЛН
ПРИКОЛЫ НАД БРАТОМ #shorts
00:23
Паша Осадчий
Рет қаралды 4,6 МЛН
Bike vs Super Bike Fast Challenge
00:30
Russo
Рет қаралды 23 МЛН
Уроки Python / Полезные модули
21:34
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 26 М.
Самое неинтересное видео
00:32
Miracle
Рет қаралды 2 МЛН