Как улучшить производительность скрипта python?
Открывайте файлы в конструкции `with` чтобы после выхода из тела конструкции (и завершении работы с файлом) ресурсы освобождались.
Еще советую прочитать вот этот пост по поиску утечек памяти.
Если по хардкору, — то можно на каждый файл пустить по процессу асинхронно, или хотябы по пачке файлов, штук 10 например. Процесс обработал, вернул какой-то результат, завершился. А главный скрипт в это время оперирует этими процессами и собирает с них полученные данные.