эффективный способ изменить заголовок файла в Python - PullRequest
7 голосов
/ 30 июня 2011

Я пытаюсь написать скрипт Python для обновления заголовка (только первой строки) некоторых огромных файлов, но поскольку новый заголовок не обязательно должен быть того же размера (в байтах), что и исходный, есть в любом случае я мог бы изменить заголовок, не касаясь остальной части огромного файла? или я должен прочитать их все и записать обратно в файл?

Ответы [ 3 ]

4 голосов
/ 30 июня 2011

Нет, единственными операциями, которые можно выполнять с файлами, не затрагивая весь файл, являются усечение , замена того же размера и добавление.

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

1 голос
/ 30 июня 2011

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

0 голосов
/ 30 июня 2011

Вам нужно будет прочитать и записать весь файл, так как остальное содержимое файла придется переместить, чтобы учесть различия в размере заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...