Python StringIO не использует дескрипторы файлов ОС, поэтому он не будет ограничен таким же образом. StringIO будет ограничен доступной виртуальной памятью, но у вас, вероятно, есть куча доступной памяти.
Обычно ОС позволяет одному процессу открывать тысячи файлов перед запуском в ограничение, поэтому, если ваша программа работаетиз-за файловых дескрипторов вы можете забыть закрыть их. Если, конечно, вы не собираетесь открывать тысячи файлов и на самом деле просто закончились.