В чем разница между «mmap.mmap» и «tempfile.SpooledTemporaryFile» в stdlib Python? ⇐ Python
-
Anonymous
В чем разница между «mmap.mmap» и «tempfile.SpooledTemporaryFile» в stdlib Python?
Я пишу программу на python 3.11, и мне нужно временно сохранить некоторые данные (изображения из Bing Maps API). Я знаю, что есть два метода временного хранения: mmap.mmap и tempfile.SpooledTemporaryFile могут сохранять их в памяти, чтобы их было быстрее читать (мне не нужно записываем в данные).
И я хочу знать, в чем между ними разница.
[*]Я прочитал документацию на docs.python.org, но она меня все еще смущает. [*]Я искал в Интернете и знаю, что временный файл можно сопоставить:
# python из временного файла импортируйте TemporaryFile как TmpF из mmap импортировать mmap с TmpF() как fp: map = mmap(fileno=fp.fileno(), length=0) # Я пропустил здесь метод fileno(). Большое спасибо за Михаила. содержимое = карта.читать() карта.закрыть() Однако, будет ли tempfile.SpooledTemporaryFile перенесен (как это делает fp.rollover(), он будет записан на диск) ) перед нанесением на карту? (На эту проблему ответил Михаил)
Но в чем разница между этими классами, которые все сохраняют данные в памяти?
Я пишу программу на python 3.11, и мне нужно временно сохранить некоторые данные (изображения из Bing Maps API). Я знаю, что есть два метода временного хранения: mmap.mmap и tempfile.SpooledTemporaryFile могут сохранять их в памяти, чтобы их было быстрее читать (мне не нужно записываем в данные).
И я хочу знать, в чем между ними разница.
[*]Я прочитал документацию на docs.python.org, но она меня все еще смущает. [*]Я искал в Интернете и знаю, что временный файл можно сопоставить:
# python из временного файла импортируйте TemporaryFile как TmpF из mmap импортировать mmap с TmpF() как fp: map = mmap(fileno=fp.fileno(), length=0) # Я пропустил здесь метод fileno(). Большое спасибо за Михаила. содержимое = карта.читать() карта.закрыть() Однако, будет ли tempfile.SpooledTemporaryFile перенесен (как это делает fp.rollover(), он будет записан на диск) ) перед нанесением на карту? (На эту проблему ответил Михаил)
Но в чем разница между этими классами, которые все сохраняют данные в памяти?