Если это в Windows NTFS, вы можете вставить в середину файла. (Или так мне сказали, я не разработчик Windows).
Если это в системе POSIX (Linux или Unix), вы должны использовать «cat», как сказал кто-то другой. cat очень эффективен, использует каждый трюк в книге, чтобы добиться оптимальной производительности (т. е. копирование пустот буферов и т. д.)
Однако, если вам нужно сделать это на python, код, который вы представили, можно улучшить, используя shutil.copyfileobj () (который принимает 2 дескриптора файла) и tempfile.TeoraryFile (создайте файл, который автоматически удаляется при закрытии):
import os
import shutil
import tempfile
def prependToFile(f, text):
outFile = tempfile.NamedTemporaryFile(dir='.', delete=False)
outFile.write('# START\n')
outFile.write('%s\n' % str(text))
outFile.write('# END\n\n')
shutil.copyfileobj(file(f, 'r'), outFile)
os.remove(f)
shutil.move(outFile.name, f)
outFile.close()
Я думаю, что os.remove (f) не нужен, так как shutil.move () удалит f. Тем не менее, вы должны проверить это. Кроме того, «delete = False» может не понадобиться, но может быть безопасно оставить его.