Я работаю над сценарием 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. Мне действительно нужно, чтобы одно или другое работало; Я создал оба просто в качестве учебного упражнения.