Как использовать tempfile.NamedTemporaryFile()?

Я работаю над сценарием Python, который должен создать около 50 различных временных файлов, которые часто добавляются во время выполнения сценария и объединяются в конце. Я уверен, что модуль tempfileможет делать то, что мне нужно, но я не смог понять, как это сделать, прочитав документацию.

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

Следующий фрагмент кода представляет собой хак, который я сейчас использую для создания этих файлов (временно) в невременном каталоге:

item = (string from another file)   # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
   totalitems.add(item)
   with open(tmpfile, 'w') as itemfile:
      output = some stuff
      tmpfile.write(output)
else:
   with open(tmpfile, 'a') as itemfile:
      output = different stuff
      tmpfile.write(output)

Думаю, мне нужно tempfile.NamedTemporaryFile(). Согласно документации:

Это имя можно получить из члена имени файлового объекта.

К сожалению, я не понимаю, что это значит. Мне просто нужно иметь возможность снова вызывать каждый файл позже, когда я снова сталкиваюсь с соответствующим «элементом» в файлах, которые я обрабатываю. Я предполагаю, что это довольно прямолинейно, и я просто туплю. Если это имеет значение, у меня есть версии этого скрипта для Python 2.7.1 и 3.2.3. Мне действительно нужно, чтобы одно или другое работало; Я создал оба просто в качестве учебного упражнения.

36
задан martineau 11 February 2019 в 00:16
поделиться