Създаване на временна директория за съхраняване на файлове, използвани при изчислението

Скрипт на python изтегля 2 таблици от база данни, прави някои изчисления и създава нова и я качва. Има включени междинни файлове и за съхраняване на всички файлове създавам папка, наречена „temp“ в текущата работна директория. Преди да излезе програмата изтрива темп. Това не работи много добре, защото

  1. Ако вече има папка с име temp, тя ще бъде изтрита
  2. Ако програмата се срине преди последната стъпка на изтриване на temp, следващия път, когато програмата се стартира, тя се срива, защото файлове със същото име съществуват от предишното изпълнение.

Предполагам, че това е сравнително често срещан сценарий. Как се работи обикновено?


person Celeritas    schedule 26.06.2015    source източник
comment
За да адресирате 1, просто наименувайте папката си нещо по-конкретно от просто temp. Може също да искате да добавите проверка, за да видите дали файловете вече съществуват и може би да ги презапишете/изтриете.   -  person Ben Longo    schedule 27.06.2015


Отговори (1)


има tempfile модул само за това

import tempfile
new_dir = tempfile.mkdtemp() #makes a new temp folder guaranteed to be unique(in the os-specific temp location)
...
os.remove(new_dir)

наистина не мисля, че дори трябва да премахнете new_dir, тъй като той автоматично ще изчезне при следващото рестартиране обикновено (*мисля)

person Joran Beasley    schedule 26.06.2015
comment
използвайте try/finally или atexit манипулатор, за да извикате os.remove(). Можете да използвате параметър dir, за да създадете временна директория в текущата директория. - person jfs; 27.06.2015