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

Модуль Python Tempfile

Module Python Tempfile Module, Python Письмо к временному файлу, Python TempFile Написать, а затем прочитайте, Python Tempfile Name, Python Tempfile Path, Python Temp File Seeps, функция Python Tempe

Автор оригинала: Pankaj Kumar.

Python Tempfile.

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

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

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

Когда нам нужно создать временный файл для хранения данных, Временный () Функция – это то, что мы хотим. Преимущество этой функции предоставляет нам, что когда она делает новый файл, есть Нет ссылок на файл в файловой системе платформы И так, для других программ невозможно получить доступ к этим файлам.

Вот пример программы, которая создает временный файл и очищает файл, когда Временноеfilefile закрыто:

import os
import tempfile

# Using PID in filename
filename = '/tmp/journaldev.%s.txt' % os.getpid()

# File mode is read & write
temp = open(filename, 'w+b')

try:
    print('temp: {0}'.format(temp))
    print('temp.name:  {0}'.format(temp.name))
finally:
    temp.close()
    # Clean up the temporary file yourself
    os.remove(filename)

print('TemporaryFile:')
temp = tempfile.TemporaryFile()
try:
    print('temp: {0}'.format(temp))
    print('temp.name: {0}'.format(temp.name))
finally:
    # Automatically cleans up the file
    temp.close()

Давайте посмотрим на вывод этой программы:

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

В первом фрагменте кода мы чистите файл самостоятельно. В следующем фрагменте кода, как только Временный файл Закрыт, файл полностью удален из системы.

Как только вы запускаете эту программу, вы увидите, что в файловой системе отсутствуют файлы вашей машины.

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

К счастью, чтение всех данных из временного файла – это просто вопрос одинарной функции. С этим мы можем прочитать данные, которые мы пишем в файле без обработки его байта байтом или выполнение сложных операций IO.

Давайте посмотрим на фрагмент образца кода, чтобы продемонстрировать это:

import os
import tempfile

temp_file = tempfile.TemporaryFile()
try:
    print('Writing data:')
    temp_file.write(b'This is temporary data.')
    temp_file.seek(0)   
    print('Reading data: \n\t{0}'.format(temp_file.read()))
finally:
    temp_file.close()

Давайте посмотрим на вывод этой программы:

Чтение tempfile

Нам только пришлось позвонить Читать () Функция на Временный () Объект, и мы смогли вернуть все данные из временного файла. Наконец, обратите внимание, что мы написали только данные байта в этот файл. В следующем примере мы будем писать подобные текстовые данные к нему.

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

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

import tempfile

file_mode = 'w+t'
with tempfile.TemporaryFile(mode=file_mode) as file:
    file.writelines(['Java\n', 'Python\n'])
    file.seek(0)
    for line in file:
        print(line.rstrip())

Давайте посмотрим на вывод этой программы:

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

Мы изменили режим файла в T , что важно, если мы хотим писать текстовые данные в наши временные файлы.

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

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

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

import os
import tempfile

temp_file = tempfile.NamedTemporaryFile()
try:
    print('temp_file : {0}'.format(temp_file))
    print('temp.temp_file : {0}'.format(temp_file.name))
finally:
    # Automatically deletes the file
    temp_file.close()

print('Does exists? : {0}'.format(os.path.exists(temp_file.name)))

Давайте посмотрим на вывод этой программы:

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

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

Иногда нам необходимо иметь префикс и суффикс в именах файлов, чтобы определить цель, которую выполняет файл. Таким образом, мы можем создавать несколько файлов, чтобы их легко идентифицировать в куче файлов о том, какой файл достигает конкретной цели.

Вот пример программы, которая обеспечивает префикс и суффикс в имена файлов:

import tempfile

temp_file = tempfile.NamedTemporaryFile(suffix='_temp', 
                                   prefix='jd_', 
                                   dir='/tmp',)
try:
    print('temp:', temp_file)
    print('temp.name:', temp_file.name)
finally:
    temp_file.close()

Давайте посмотрим на вывод этой программы:

Tempfile с префиксом и суффиксом

Мы только что предоставили три аргумента для Namedtemporaryfile () Функция, и она управляет предоставлением префикса и суффикса к временному файлу этот модуль создает.

Заключение

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

Читайте больше сообщений Python здесь.

Загрузите исходный код