Мне нужно чтобы функция получала на вход путь до папка, возвращала функция dict() в формате, который я написал ниже.
Предположим, что есть такая структура файлов (вложенность как папок так и файлов может быть бесконечной):
D:\MEDIA\Breaking.Bad.S05E09.HD.rus.LostFilm.TV.mkv
D:\MEDIA\Iron.Man.3.2013.WEB-DL.mkv
D:\MEDIA\Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB\Dexter.S08E03.720p.HDTVRip.Rus.Eng.HDCLUB.mkv
D:\MEDIA\Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB\Dexter.S08E04.720p.HDTVRip.Rus.Eng.HDCLUB.mkv
D:\MEDIA\Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB\Dexter.S08E05.720p.HDTVRip.Rus.Eng.HDCLUB.mkv
D:\MEDIA\Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB\Dexter.S08E06.720p.HDTVRip.Rus.Eng.HDCLUB.mkv
D:\MEDIA\Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB\Dexter.S08E07.720p.HDTVRip.Rus.Eng.HDCLUB.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E01.Scarlet.Ribbons.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E02.Little.Red.Book.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E03.Pretty.Red.Balloon.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E04.Ring.Around.the.Rosie.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E05.Blood.and.Sand.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E06.Where.in.the.World.is.Carmine.O'Brien.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E07.Blinking.Red.Light.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E08.Pink.Tops.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E09.The.Redshirt.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E10.Fugue.In.Red.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E11.Always.Bet.On.Red.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E12.My.Bloody.Valentine.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E13.Red.Is.The.New.Black.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E14.At.First.Blush.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E15.War.of.the.Roses.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E16.His.Thoughts.Were.Red.Thoughts.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E17.Cheap.Burgundy.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E18.Ruddy.Cheeks.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E19.Pink.Champagne.on.Ice.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E20.Something's.Rotten.in.Redmund.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E21.Ruby.Slippers.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E22.So.Long.and.Thanks.for.All.Red.Snapper.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E23.Red.Rover.Red.Rover.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The Mentalist 4 season WEB-DL 720 2xRus\The.Mentalist.S04E24.The.Crimson.Hat.WEB-DL.720p.2xRus.Eng.Subs.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e01.The.Red.Glass.Bead.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e02.Devil's.Cherry.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e03.Not.One.Red.Cent.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e04.Blood.Feud.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e05.Red.Dawn.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e06.Cherry.Picked.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e07.If.It.Bleeds.It.Leads.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e08.Red.Sails.in.the.Sunset.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e09.Black.Cherry.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e10.Panama.Red.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e11.Days.Of.Wine.And.Roses.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e12.Little.Red.Corvette.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e13.The.Red.Barn.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e14.Red.In.Tooth.And.Claw.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e15.Red.Lacquer.Nail.Polish.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e16.There.Will.Be.Blood.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e17.Red.White.And.Blue.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e18.Behind.The.Red.Curtain.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e19.Red.Letter.Day.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e20.Red.Velvet.Cupcakes.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e21.Red.and.Itchy.720p.WEB-DL.Rus.Eng.mkv
D:\MEDIA\The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng\Mentalist.s05e22.Red.John's.Rules.720p.WEB-DL.Rus.Eng.mkv
На входе скрипту дается “D:\\/MEDIA\\”, результатом должно получится нечто подобное (json.jsonify(result))
{ "base_path": "D:\\MEDIA\\", "Breaking.Bad.S05E09.HD.rus.LostFilm.TV.mkv", "Iron.Man.3.2013.WEB-DL.mkv", "Dexter.S08.720p.HDTVRip.Rus.Eng.HDCLUB": [ "Dexter.S08E03.720p.HDTVRip.Rus.Eng.HDCLUB.mkv", "Dexter.S08E04.720p.HDTVRip.Rus.Eng.HDCLUB.mkv", "Dexter.S08E05.720p.HDTVRip.Rus.Eng.HDCLUB.mkv", "Dexter.S08E06.720p.HDTVRip.Rus.Eng.HDCLUB.mkv", "Dexter.S08E07.720p.HDTVRip.Rus.Eng.HDCLUB.mkv" ], "The Mentalist 4 season WEB-DL 720 2xRus": [ "The.Mentalist.S04E01.Scarlet.Ribbons.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E02.Little.Red.Book.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E03.Pretty.Red.Balloon.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E04.Ring.Around.the.Rosie.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E05.Blood.and.Sand.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E06.Where.in.the.World.is.Carmine.O'Brien.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E07.Blinking.Red.Light.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E08.Pink.Tops.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E09.The.Redshirt.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E10.Fugue.In.Red.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E11.Always.Bet.On.Red.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E12.My.Bloody.Valentine.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E13.Red.Is.The.New.Black.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E14.At.First.Blush.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E15.War.of.the.Roses.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E16.His.Thoughts.Were.Red.Thoughts.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E17.Cheap.Burgundy.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E18.Ruddy.Cheeks.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E19.Pink.Champagne.on.Ice.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E20.Something's.Rotten.in.Redmund.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E21.Ruby.Slippers.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E22.So.Long.and.Thanks.for.All.Red.Snapper.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E23.Red.Rover.Red.Rover.WEB-DL.720p.2xRus.Eng.Subs.mkv", "The.Mentalist.S04E24.The.Crimson.Hat.WEB-DL.720p.2xRus.Eng.Subs.mkv" ], "The.Mentalist.S05.720p.720p.WEB-DL.3xRus.Eng": [ "Mentalist.s05e01.The.Red.Glass.Bead.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e02.Devil's.Cherry.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e03.Not.One.Red.Cent.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e04.Blood.Feud.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e05.Red.Dawn.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e06.Cherry.Picked.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e07.If.It.Bleeds.It.Leads.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e08.Red.Sails.in.the.Sunset.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e09.Black.Cherry.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e10.Panama.Red.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e11.Days.Of.Wine.And.Roses.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e12.Little.Red.Corvette.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e13.The.Red.Barn.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e14.Red.In.Tooth.And.Claw.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e15.Red.Lacquer.Nail.Polish.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e16.There.Will.Be.Blood.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e17.Red.White.And.Blue.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e18.Behind.The.Red.Curtain.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e19.Red.Letter.Day.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e20.Red.Velvet.Cupcakes.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e21.Red.and.Itchy.720p.WEB-DL.Rus.Eng.mkv", "Mentalist.s05e22.Red.John's.Rules.720p.WEB-DL.Rus.Eng.mkv" ] }
Все это мне нужно для мини файл менеджера в админке сайта…
У меня есть такая идея: проходимся os.walk, генерируем список, далее проверки isdir, isfile, в итоге получаем такой dict(). Но как вы сами понимаете, довольно много будет проверок, да и код будет достаточно большим и весьма запутанным. Поэтому, хочу спросить сообщество, как можно сделать это более адекватным способом и есть ли готовые решения?
Заранее огромное спасибо!