2012-11-29 15 views
18

Robię trochę przetwarzania plików i do generowania pliku potrzebuję wygenerować tymczasowy plik z istniejących danych, a następnie użyć tego pliku jako wejścia do mojej funkcji.Jak wygenerować plik tymczasowy w django i następnie zniszczyć

Ale jestem zdezorientowany, gdzie powinienem zapisać ten plik, a następnie go usunąć.

Czy istnieje miejsce, gdzie temp pliki automatycznie zostanie usunięty po sesji użytkownika

Odpowiedz

38

Python ma tempfile module w tym celu. Nie musisz martwić się o lokalizację/usunięcie pliku, działa na wszystkich obsługiwanych platformach.

Istnieją trzy rodzaje plików tymczasowych:

  • tempfile.TemporaryFile - wystarczy podstawowy plik tymczasowy,
  • tempfile.NamedTemporaryFile - "Funkcja ta działa dokładnie tak, jak TemporaryFile() robi, chyba że plik jest gwarantowana mieć widoczny nazwa w systemie plików (w systemie Unix pozycja katalogu nie jest odłączona) Nazwa ta może być odczytana z atrybutu nazwy obiektu pliku: ",
  • tempfile.SpooledTemporaryFile -" Thi s działa dokładnie tak, jak robi to TemporaryFile(), z tym wyjątkiem, że dane są buforowane w pamięci, dopóki rozmiar pliku nie przekroczy max_size, lub do czasu wywołania metody pliku fileno(), w którym to momencie zawartość jest zapisywana na dysku, a operacja przebiega tak, jak w przypadku TemporaryFile().

EDIT: Przykład użycia prosiłeś mógłby wyglądać następująco:.

>>> with TemporaryFile() as f: 
     f.write('abcdefg') 
     f.seek(0) # go back to the beginning of the file 
     print(f.read()) 


abcdefg 
+0

Może pokażesz mi jakiś przykład tworzenia pliku tymczasowego, a następnie używając go nie mogłem znaleźć to na pagr – user825904

+0

@ user32: Przykład jest bardzo prosty: tworzysz instancję jednej z klas i otwierasz w zamian plik otwarty, po prostu operujesz na niej tak, jakby był plikiem standardowym (z ograniczeniami wymienionymi w dokumentach, co oznacza jest tylko tymczasowy itp.). – Tadeck

0

Należy użyć czegoś z modułu tempfile. Myślę, że ma wszystko, czego potrzebujesz.

Powiązane problemy