Python

Модуль временного файла Python

Модуль временного файла Python
Часто в наших программах нам необходимо хранить некоторую временную информацию о состоянии программы и объектах, которые могут существовать, а могут и не существовать за пределами состояния самой программы. Данные, которые хранятся в этих файлах, могут быть не в удобочитаемой форме или даже в форме, которую может использовать кто угодно, но некоторые программы, алгоритмы или хакеры могут найти способ получить информацию из этих данных, что может принести в жертву безопасность системы. Итак, нам нужно создать логику, которая создает эти файлы, записывает некоторые данные, а затем также удаляет файлы. Что, если бы в нашей программе было что-то, что абстрагирует так много операций?? Похоже, что в Python есть модуль для того же, временный файл модуль.

Примеры с модулем tempfile

Начнем с простых примеров с Python временный файл модуль здесь.

Создание временных файлов

Первое, что нужно для сохранения временных данных, - это файлы, в которых мы можем хранить эти данные. Это можно сделать с помощью Временный файл () функция. Самым большим преимуществом этой функции является то, что когда файл создается с помощью этой функции, в файловой системе системы не создаются ссылки на этот файл, и поэтому другие процессы не могут получить доступ к этим файлам.

Давайте посмотрим на простую программу, которая использует Временный файл () функция:

импорт ОС
импортировать временный файл
# Использование PID в имени файла для лучшей идентификации
файл = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Обеспечение файлового режима
temp_file = open (файл, 'w + b')
пытаться:
print ('temp_file: 0'.формат (temp_file))
print ('temp_file.имя: 0 '.формат (temp_file.название))
наконец-то:
temp_file.Закрыть()
# Самостоятельное удаление временного файла
Операционные системы.удалить файл)
print ('Метаданные временного файла:')
temp_file = временный файл.Временный файл ()
пытаться:
print ('temp_file: 0'.формат (temp_file))
print ('temp_file.имя: 0 '.формат (temp_file.название))
наконец-то:
# Очищает файл при вызове закрытия
temp_file.Закрыть()

Вот что мы получаем с помощью этой команды:

Создание временного файла

Этот файл удаляется, как только Закрыть() функция вызывается на временный файл Справка.

Чтение из временного файла

Даже чтение из временного файла легко и может быть выполнено за один вызов метода в том же модуле. Преимущество этой функции в том, что это помогает нам избежать сложных операций ввода-вывода задействован, если нам нужно выполнить эти операции вручную. Вот программа, показывающая эту функцию в действии:

импорт ОС
импортировать временный файл
tempFile = временный файл.Временный файл ()
пытаться:
print ('Запись данных в tempFile:')
tempFile.напишите (b'Any data can go here.')
tempFile.искать (0)
print ('Чтение данных из формы tempFile: \ n \ t 0'.формат (tempFile.читать()))
наконец-то:
tempFile.Закрыть()

Посмотрим, что выводит эта команда:

Python читает из временного файла

Весь текст во временных файлах был возвращен одним вызовом метода.

Запись простого текста во временный файл

В наших вышеупомянутых программах все данные, записываемые в файлы, не были в форме простого текстового формата. Если мы хотим сделать это для простых текстовых операций, мы можем просто изменить режим файла, когда мы открываем временный файл для изменений:

импортировать временный файл
fileMode = 'ш + т'
с временным файлом.TemporaryFile (mode = fileMode) как файл:
файл.Writelines (['Linux \ n', 'Ubuntu \ n'])
файл.искать (0)
для элемента в файле:
печать (элемент.rstrip ())

Вот что мы получаем с помощью этой команды:

Запись в файл простого текста

Создание именованных временных файлов

Файлы, которые должны быть распределены между несколькими процессами, должны быть названы так, чтобы процесс не удалял их по завершении. Вот как мы можем создать временный именованный файл:

импорт ОС
импортировать временный файл
tempFile = временный файл.NamedTemporaryFile ()
пытаться:
print ('tempFile: 0'.формат (tempFile))
print ('temp.tempFile: 0 '.формат (tempFile.название))
наконец-то:
# Также удаляем файл
tempFile.Закрыть()
print ('Существует? : 0 '.формат (os.дорожка.существует (tempFile.название)))

Посмотрим, что выводит эта команда:

Именованный временный файл

Если мы не удалим файл, мы можем проверить его существование в другой программе и использовать его, если он существует в указанном месте.

Предоставление суффикса и префикса имени файла

Чтобы легко идентифицировать файлы, которые принадлежат нашим собственным процессам в файловой системе, мы также можем применить суффикс и префикс к имени файла:

импортировать временный файл
tempFile = временный файл.NamedTemporaryFile (суффикс = '_ ubuntu',
префикс = 'linuxhint_',
dir = '/ tmp',)
пытаться:
print ('tempFile:', tempFile)
print ('tempFile.имя: ', tempFile.название)
наконец-то:
tempFile.Закрыть()

Вот что мы получаем с помощью этой команды:

Применение префикса и суффикса к имени файла

Мы предоставили три параметра методу, который действует как суффикс и префикс для имени файла, которое будет сделано в указанном нами месте.

Заключение

В этом уроке мы рассмотрели, как мы можем использовать модуль Python tempfile для управления временными файлами в нашем коде. Прочтите больше сообщений на основе Python здесь.

Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...