Добавить нулевые байты в файл в python3, используя разреженный метод? - PullRequest
0 голосов
/ 09 января 2019

Если бы я создавал разреженный файл с нуля и хотел, чтобы он был размером n , я бы использовал bytestream.seek (n-1), чтобы сместить указатель, а затем записать один нулевой байт. в конце. Гораздо быстрее, чем написать поток байтов длины n!

Однако, если я открыл указанный файл с помощью open (…, 'ab'), seek () больше не является опцией, как только я вызываю write (), позиция сбрасывается в конец файла, так как указано в документации. Кажется, единственная возможность при использовании исправления python - записать каждый отдельный нулевой байт.

Есть ли другой способ эффективного и быстрого добавления нулевых байтов к уже существующему файлу?

1 Ответ

0 голосов
/ 10 января 2019

Это правда, что режим добавления побеждает seek, но часть цели seek состоит в том, чтобы быть более гибким , чем режим добавления. Откройте в режиме update ('r+b'), и вы сможете искать или заканчивать конец файла. (Вы можете искать от до , но не до конца в текстовом режиме.)

...