Рубрики
Без рубрики

Python Howto – Использование модуля TempFile в Python

Привет всем! В современной статье мы смотрим, как мы можем использовать модуль TempFile в Python.

Автор оригинала: 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, чтобы иметь дело с временными файлами и каталогами.

использованная литература