It's not necessary to bring Python into it, Bash can handle filenames with weird characters properly if you know how to use it.
E.g. instead of `ls | grep -Ev 'wav|draft'`, you'd have to do something like
for filename in *; do
if grep -E 'wav|draft' >/dev/null <<< "$filename"
then : # ...
fi
done
Of course, it's more convoluted, but when you're writing scripts that might be used for a long time and by many people, it helps to know that it is possible to write robust things. Tools like shellcheck certainly help.