Чем моя то хуже?
Добываю список и обрабатываю его.
Обращаюсь к файлу всего один раз, а не за каждой строкой.
Могу обрабатывать несколько строк за раз.
На мой взгляд for + cat тут лучше.
И правильного способа не существует, есть общепризнанные, безопастные и тд, но не правильные