2013-08-15 3 views
3

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

используя следующий код:

import os 
import tempfile 

#define the location of 'mytemp' parent folder relative to the system temp 
sysTemp = tempfile.gettempdir() 
myTemp = os.path.join(sysTemp,'mytemp') 

#You must make sure myTemp exists 
if not os.path.exists(myTemp): 
    os.makedirs(myTemp) 

на мой макинтош он создает папку:/вар/папки/яя/zyl78zb ..... на компьютере он создает (скрытой папке внутри моей директории пользователя

Из документации модуля tempfile Я понимаю, что если вы создаете tempdir, вы должны очистить его самостоятельно. Иногда я хочу пойти и посмотреть файлы-посредники, поэтому я не хочу автоматически их удалять. Если я оставлю их будет ли os в конечном итоге очистить эти каталоги (после перезагрузки и т. д.)? Если я не чистите их непосредственно из скрипта, следующие прогоны могут, вероятно, получить другой tempdir. В конечном итоге это может привести к большому количеству неиспользуемых и нежелательных файлов.

Я просмотрел документацию по tempfile, но не могу найти ответ. Вероятно, это скорее вопрос ОС, но кто-то с опытом модуля tempfile должен знать.

+0

Это вопрос с ОС. Модуль tempfile делает * not * очищает их для вас, когда вы создаете каталог и файлы сами. –

+0

согласны с ОС, как указано в вопросе. Я просто подумал, что кто-то, использующий модуль python, может знать последствия. – Joop

ответ

5

Например, на linux часто /tmp очищается при загрузке. Но помните, что многие серверы могут работать непрерывно в течение многих лет, поэтому лучше не рассчитывать на перезагрузку. И в Windows тогда, temps очищаются всякий раз, когда выполняется очистка диска, если никогда. Ваша программа отвечает за удаление своих временных файлов, когда она существует; лучший способ - отключить их сразу после открытия (в Unixen); используйте лучший механизм, доступный в модуле tempfile, что бы вы ни делали.

+0

Как не нужны временные файлы из предыдущих прогонов скрипта, только в последний раз. Я всегда могу очистить tempfiles в последующих прогонах. Моя проблема заключается в том, что каталог tempfile не гарантируется постоянством между запусками. – Joop

Смежные вопросы