Иногда нам нужно временно хранить данные в файле для временного выполнения какой-либо задачи. Например, ежемесячный отчет о продажах любой организации можно создать, сохранив данные о продажах во временном файле. Лучше сохранить данные во временном файле для создания отчета, чтобы предотвратить случайное изменение исходных данных. Временный файл также можно использовать для защиты конфиденциальных данных. Создание временного файла и выполнение таких задач легко выполняется в Python с помощью модуля tempfile . Этот модуль содержит множество функций для создания временных файлов и папок и легкого доступа к ним. В этой статье показано использование модуля tempfile в Python.
Создание временного файла без модуля tempfile
Задачу временного файла можно выполнить без использования модуля tempfile, создав простой файл. Для этого вы должны создать обычный файл, выполнить временные задачи и удалить файл после выполнения задач. В этом примере временный файл с именем temp.txt открывается в режиме записи, и во временный файл записывается текст. Модуль ‘ os ‘ используется здесь для чтения содержимого файла temp.txt и удаления файла после выполнения задачи.
# Импортировать модуль os import os# Определить имя временного файла filename = 'temp.txt' # Открыть файл в режиме чтения fh = open(filename, 'w') try: # Распечатать сообщение перед записью print("Запись в файл >>> \n") # Записываем строку в файл fh.write("Тестирование временного файла") # Наконец, закроем файл после записи fh.close() finally: # Напечатайте сообщение перед чтением print("<<< Чтение из файла") # Запустить команду bash, чтобы прочитать файл os.system("cat temp.txt") # Распечатать новую строку print("\n") # Удалить временный файл os.remove(filename)
Создание временного файла с помощью метода TemporaryFile()
В этом примере для создания временного файла используется модуль tempfile. В этом модуле есть много методов работы с временным файлом. Метод TemporaryFile() используется здесь для создания временного файла. Временный файл открывается в сценарии как текстовый файл в режиме записи. По умолчанию временный файл будет создан в текущем месте. Две строки текста записываются во временный файл с помощью метода write(). Затем вызывается метод seek(), чтобы установить указатель файла в начало файла. Содержимое файла печатается в терминале с помощью метода read(). Метод close() модуля используется для закрытия файла и автоматического удаления файла.
# Импортировать модуль временного файла import tempfile# Объявить объект для открытия временного файла для записи tmp = tempfile.TemporaryFile('w + t') try: # Распечатать сообщение перед записью print('Запись во временный файл ...') # Записать данные во временный файл tmp.write('AndreyEx \n') tmp.write('Содержимое временного файла') # Перейти к началу файла tmp.seek(0) # Прочитать содержимое временного файла print(' Чтение временного файла: \n {0} '.format(tmp.read())) finally: # Автоматическое удаление временного файла tmp.close()
Создание временного файла с использованием метода NamedTemporaryFile ()
В предыдущем примере имя временного файла создается случайным образом. Но если вы хотите установить любое собственное имя для временного файла, вы должны использовать метод NamedTemporaryFile() для создания временного файла. В этом примере временный файл открывается в режиме записи с помощью метода NamedTemporaryFile(). Далее устанавливается имя файла temp.txt. Одна строка текста записывается в файл и считывается из файла, как в предыдущем примере. Ранее упоминалось, что временный файл удаляется автоматически при вызове метода close(). После удаления здесь используется модуль ‘os’, чтобы проверить, существует ли временный файл.
# Импортировать модуль временного файла import tempfile# Импортировать модуль os import os # Объявить объект для открытия временного файла для записи tmp = tempfile.NamedTemporaryFile('w + t') # Объявить имя временного файла tmp.name = "temp.txt" try: # Распечатать сообщение перед записью print('Записать данные во временный файл ...') # Записать данные во временный файл tmp.write('Это временное содержимое.') # Перейти к началу файла tmp.seek(0) # Прочитать содержимое временного файла print('Прочитать содержимое временного файла: \n {0}' .format(tmp.read())) finally: # Удалить файл автоматически tmp.close() # Проверить, существует ли файл, if (os.path.exists(tmp.name)) : print('Файл существует') else: print('Файл не существует')
Создание временного файла с префиксом и суффиксом
Все временные файлы создаются в текущем месте для предыдущих примеров. Местоположение временного файла, а также префикс и суффикс для временного файла можно указать во время создания файла с помощью метода NamedTemporaryFile(). Согласно следующему сценарию, временное имя файла будет начинаться с «tm_» и заканчиваться на «_fl». Файл будет сохранен в папке «/tmp». После создания файла временное имя файла печатается с использованием свойства name . Затем модуль ‘ os’ проверяет, удален файл или нет.
# Импортировать модуль временного файла import tempfile# Импортировать модуль os import os # Объявить объект для создания временного файла с суффиксом и префиксом tmp = tempfile.NamedTemporaryFile(mode = 'w + t', prefix = 'tm_', suffix = '_fl', dir = '/tmp') # Распечатать временное имя файла print(tmp.name) try: # Распечатать сообщение перед записью print('Записать данные во временный файл ...') # Записать данные во временный файл tmp.write('Это временное содержимое.') finally: # Автоматически удалить файл tmp.close() if (os.path.exists(tmp.name) == False) : print('Файл удален')
Заключение:
Обычным требованием для любого языка программирования является создание временного файла для выполнения многих задач по запросу и работы с теми данными, которые не требуется хранить постоянно. В этой статье объясняются некоторые необходимые методы модуля tempfile, чтобы показать способы использования временного файла. Надеюсь, читатель сможет легко создавать и использовать временные файлы после прочтения этой статьи.