Интересный вопрос. Поигрался с режимами, и сложилось впечатление, режим "w+" использует буферизацию (возможно это верно для Python работающем под Windows, змей для других систем обитания под рукой нет). Сначала пишется в буфер в памяти, а потом этот буфер записывается в файл.
Запись буфера происходит при вызове методов file.flush() - запись буфера в файл, и file.close() - закрытие файла, буфер тоже записывается.
Вариант решения:
file = open("test.txt", "w+")
file.write("5!")
file.flush()
file.flush() не обязательно вызывать после каждой записи в файл, а тогда, когда возникнет необходимость.