Hallo
Mit Python würde ich das vermutlich über find() und split() erledigen.
Anstatt `find` würde ich `in` verwenden. Weil ich denke dass das sonst so ein gefummel werden kann. Mit `in` bekomme ich mal meine gewünschte Zeile und kann die dann gemütlich formatieren und muss nicht auf einen Indexbereich zugreifen, der vielleicht etwas unverständlich ist. (Zumindest so wie ich mir das gerade vorstelle.
Python
from icecream import ic
FILE = """
├── [ 4096] Music
│ └── [ 4096] 1
│ └── [ 4096] 2
│ └── [ 4096] 3
│ └── [ 4096] Ministry
│ └── [ 4096] Houses Of The Mole [MYNCD023]
│ ├── [ 5042857] 01-No W.mp3
│ ├── [ 7240212] 02-Waiting.mp3
│ ├── [ 6089950] 03-Worthless.mp3
│ ├── [ 7285550] 04-Wrong.mp3
│ ├── [ 5595921] 05-Warp City.mp3
│ ├── [ 6463257] 06-WTV.mp3
│ ├── [ 7740841] 07-World.mp3
│ ├── [ 7190622] 08-WKYJ.mp3
│ ├── [ 12208242] 09-Worm.mp3
│ ├── [ 7059500] 10-Psalm.mp3
│ └── [ 3841604] 11-Walrus.mp3
├── [ 4096] Pictures
├── [ 4096] Public
"""
def main():
search_results = [line.split("] ") for line in FILE.splitlines() if "mp3" in line]
format_results = [
(
"".join(character for character in result[0] if character.isdigit()),
result[1].strip(" "),
)
for result in search_results
]
ic(format_results)
if __name__ == "__main__":
main()
Display More
Ergibt:
Code
ic| format_results: [('5042857', '01-No W.mp3'),
('7240212', '02-Waiting.mp3'),
('6089950', '03-Worthless.mp3'),
('7285550', '04-Wrong.mp3'),
('5595921', '05-Warp City.mp3'),
('6463257', '06-WTV.mp3'),
('7740841', '07-World.mp3'),
('7190622', '08-WKYJ.mp3'),
('12208242', '09-Worm.mp3'),
('7059500', '10-Psalm.mp3'),
('3841604', '11-Walrus.mp3')]
Display More
Finde ich recht übersichtlich.
Grüße
Dennis