Автор оригинала: Pankaj Kumar.
Python Howto – Использование модуля TempFile в Python
Привет всем! В современной статье мы смотрим, как мы можем использовать модуль TempFile в Python.
Этот модуль очень полезен, когда вы хотите хранить временные файлы. Там может быть необходимо хранить временные данные с точки зрения приложения, поэтому эти файлы могут оказаться очень полезными!
Python предоставляет нам tempfile
Модуль, который дает нам простой в использовании интерфейс. Давайте начнем.
Модуль Tempfile в Python
Этот модуль является частью стандартной библиотеки (Python 3.x), поэтому вам не нужно устанавливать ничего, используя PIP. Вы можете просто импортировать его!
import tempfile
Мы рассмотрим, как мы можем создавать временные файлы и каталоги сейчас.
Создание временных файлов и каталогов
tempfile
Модуль дает нам Временный ()
Способ, который создаст временный файл.
Поскольку файл временных, другие программы не может Доступ к этому файлу напрямую.
В качестве общей меры безопасности Python автоматически удаляет любые временные файлы, созданные после закрытия. Даже если он остается открытым, после завершения нашей программы это временные данные будут удалены.
Давайте посмотрим на простой пример сейчас.
import tempfile # We create a temporary file using tempfile.TemporaryFile() temp = tempfile.TemporaryFile() # Temporary files are stored here temp_dir = tempfile.gettempdir() print(f"Temporary files are stored at: {temp_dir}") print(f"Created a tempfile object: {temp}") print(f"The name of the temp file is: {temp.name}") # This will clean up the file and delete it automatically temp.close()
Выход
Temporary files are stored at: /tmp Created a tempfile object: <_io.BufferedRandom name=3> The name of the temp file is: 3
Давайте теперь попробуем найти этот файл, используя tempfile.gettemppdir ()
Чтобы получить каталог, когда все файлы Temp хранятся.
После запуска программы, если вы перейдете к temp_dir
(который является /TMP
в моем случае – Linux), вы можете увидеть, что вновь созданный файл 3
нет там.
ls: cannot access '3': No such file or directory
Это доказывает, что Python автоматически удаляет эти временные файлы после закрытия.
Теперь, подобно созданию временных файлов, мы также можем создавать временные каталоги с использованием tempfile.temporarydirectory ()
функция.
tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None)
Имена каталогов случайные, поэтому вы можете указать необязательный суффикс
и/или префикс
определить их как часть вашей программы.
Опять же, чтобы обеспечить безопасное удаление каталога после завершения соответствующего кода, мы можем использовать менеджер контекста для безопасного завершения этого!
import tempfile with tempfile.TemporaryDirectory() as tmpdir: # The context manager will automatically delete this directory after this section print(f"Created a temporary directory: {tmpdir}") print("The temporary directory is deleted")
Выход
Created a temporary directory: /tmp/tmpa3udfwu6 The temporary directory is deleted
Опять же, чтобы проверить это, вы можете попробовать перейти на соответствующий путь каталога, который не будет существовать!
1. Чтение и запись из временного файла
Подобно чтению или записи из файла, мы можем использовать такие же вызовы функций, чтобы сделать это из временного файла!
import tempfile with tempfile.TemporaryFile() as fp: name = fp.name fp.write(b'Hello from AskPython!') # Write a byte string using fp.write() fp.seek(0) # Go to the start of the file content = fp.read() # Read the contents using fp.read() print(f"Content of file {name}: {content}") print("File is now deleted")
Давайте теперь посмотрим на вывод.
Выход
Content of file 3: b'Hello from AskPython!' File is now deleted
Действительно, мы смогли легко читать и писать из/к временным файлам.
2. Создание именованных временных файлов
В некоторых ситуациях именованные временные файлы могут быть полезны для создания файлов, видимых для других сценариев/процессов, чтобы они могли получить доступ к ней, пока он еще не закрыт.
tempfile.nomedtemporaryFile ()
полезно для этого. Это имеет тот же синтаксис, что и создает нормальный временный файл.
import tempfile # We create a named temporary file using tempfile.NamedTemporaryFile() temp = tempfile.NamedTemporaryFile(suffix='_temp', prefix='askpython_') print(f"Created a Named Temporary File {temp.name}") temp.close() print("File is deleted")
Выход
Created a Named Temporary File /tmp/askpython_r2m23q4x_temp File is deleted
Здесь именованный временный файл с префиксом AskPython_
и суффикс _temp
создано. Опять же, он будет удален автоматически после закрытия.
Заключение
В этой статье мы узнали, как мы можем использовать модуль TempFile в Python, чтобы иметь дело с временными файлами и каталогами.
использованная литература
- Модуль Python Tempfile Документация
- Журналдав Статья на модуле TempFile