import json
import re
import os
lyrics = {}
for fn in os.listdir("all"):
f = open(f"all/{fn}")
# keep a list of every different line in this track
lyrics[fn.replace(".txt", "")] = set(f.read().splitlines())
f.close()
f = open("list")
words = f.read().splitlines()
f.close()
output = []
for w in words:
track, word = tuple(w.split("\t"))
# look for word (case insensitive) in lyrics[track]
lines = [line for line in lyrics[track] if re.search(r"\b" + word + r"\b", line, re.I)]
output.append(
{
"track": track,
"word": word,
"lines": lines,
}
)
with open("words.json", "w") as f:
json.dump(output, f)
f.close()