|
|||||||
Работа с временными файлами в Python
Время создания: 28.08.2018 13:02
Автор: br0ke
Текстовые метки: python, tempfile, temp, tmp, temporary, TemporaryFile, NamedTemporaryFile, SpooledTemporaryFile, TemporaryDirectory, mkstemp, mkdtemp
Раздел: Информационные технологии - Python - Основы языка
Запись: and-semakin/mytetra_data/master/base/15354433241hj0ebwdqi/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы с временными файлами и директориями. tempfile.TemporaryFile() Сигнатура: tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None) Эта функция создает временный файл в системной директории (разная в различных ОС) и возвращает файлоподобный объект (file-like object). Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера. Также другие процессы и приложения не смогут получить доступ к этому временному файлу. import tempfile #1 print("Creating one temporary file...") temp = tempfile.TemporaryFile() #2 try: print("Created file is:", temp) #3 print("Name of the file is:", temp.name) #4 finally: print("Closing the temp file") temp.close() #5 Вывод: $ python3 temp-file.py Creating one temporary file... Created file is: <_io.BufferedRandom name=4> Name of the file is: 4 Closing the temp file tempfile.NamedTemporaryFile() Сигнатура: tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True) В прошлом примере было показано, что функция tempfile.TemporaryFile() возвращает файлоподобный объект без имени, но в Python есть и другая функция, которая позволяет создать именованный временный файл. import tempfile print("Creating one named temporary file...") temp = tempfile.NamedTemporaryFile() try: print("Created file is:", temp) print("Name of the file is:", temp.name) finally: print("Closing the temp file") temp.close() Вывод: $ python3 named-temp-file.py Creating one named temporary file... Created file is: <tempfile._TemporaryFileWrapper object at 0x103f22ba8> Name of the file is: /var/folders/l7/80bx27yx3hx_0_p1_qtjyyd40000gn/T/tmpa3rq8lon Closing the temp file Как мы видим, у созданного файла есть имя. Фишка в том, что мы можем сохранить имя временного файла и использовать после закрытия файла или завершения программы (для этого есть аргумент delete=False). tempfile.TemporaryDirectory() Сигнатура: tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None) Эта функция создает временную директорию. Это может быть удобно, если нужно сохранить несколько временных файлов. import tempfile with tempfile.TemporaryDirectory() as tmpdirname: print('Created temporary directory:', tmpdirname) # Both the directory and its contents have been deleted Вывод: $ python3 mk-dir-temp-file.py Created temporary directory: /var/folders/l7/80bx27yx3hx_0_p1_qtjyyd40000gn/T/tmpn_ke7_rk |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|