Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как быстро создать большой файл с помощью Python. Создание sparse file


(Mykhailo Poliarush) #1

Мне недавно задали вопрос:

насколько сложно в линуксе сформировать файл в 5 ГБ и как это сделать чтобы данные в этом файле заполнлись произвольно ? насколько быстро и легко написать код для формирования такого файла?

Для быстрой и легкой генерации файла можно воспользоваться sparse file http://en.wikipedia.org/wiki/Sparse_file, тогда создание зайдет очень мало времени.

В юникс подобных системах это можно сделать вот так вот:

dd of=sparse-file bs=1k seek=5120 count=0

Или вот так вот

truncate -s 5M <filename>

Но на python это тоже можно сделать очень просто в одну строку. Этот пример создает ~10гб файл

open('file.txt', "w").truncate(10 ** 10)

Описание метода с скрытыми возможностями здесь:

file.truncate([size])
Truncate the file’s size. If the optional size argument is present, the file is truncated to (at most) that size. The size defaults to the current position. The current file position is not changed. Note that if a specified size exceeds the file’s current size, the result is platform-dependent: possibilities include that the file may remain unchanged, increase to the specified size as if zero-filled, or increase to the specified size with undefined new content. Availability: Windows, many Unix variants.

А как бы Вы решали подобную задачу?