Python

Модул tempfile на Python

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

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

Ще започнем с прости примери с Python tempfile модул тук.

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

Първото нещо, необходимо за запазване на временни данни, са файловете, в които можем да съхраняваме тези данни. Това може да се направи с помощта на TemporaryFile () функция. Най-голямото предимство на тази функция е, когато се създава файл с тази функция, не се правят връзки към този файл във файловата система на системата и затова не е възможно други процеси да имат достъп до тези файлове.

Нека разгледаме проста програма, която използва TemporaryFile () функция:

внос os
импортиране на tempfile
# Използване на PID в името на файла за по-добра идентификация
файл = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Осигуряване на файлов режим
temp_file = отворен (файл, 'w + b')
опитвам:
print ('temp_file: 0').формат (temp_file))
print ('temp_file.име: 0 '.формат (temp_file.име))
накрая:
temp_file.близо()
# Изтриваме сами временния файл
операционна система.премахване (файл)
print ('TemporaryFile Metadata:')
temp_file = tempfile.TemporaryFile ()
опитвам:
print ('temp_file: 0').формат (temp_file))
print ('temp_file.име: 0 '.формат (temp_file.име))
накрая:
# Почиства файла, когато се извика close
temp_file.близо()

Ето какво получаваме обратно с тази команда:

Създаване на временен файл

Този файл се изтрива веднага след като близо() функцията се извиква на tempfile справка.

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

Дори четенето от временен файл е лесно и може да се извърши с едно извикване на метод в същия модул. Предимството на тази функция е това това ни помага да избягваме сложни операции за IO участва, ако трябва да направим тези операции ръчно. Ето програма, показваща тази функция в действие:

внос os
импортиране на tempfile
tempFile = tempfile.TemporaryFile ()
опитвам:
print ('Записване на данни във tempFile:')
tempFile.write (b'Всички данни могат да отидат тук.')
tempFile.търся (0)
print ('Четене на формуляр за данни tempFile: \ n \ t 0'.формат (tempFile.Прочети()))
накрая:
tempFile.близо()

Нека видим изхода за тази команда:

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

Целият текст във временните файлове беше предоставен обратно с едно извикване на метод.

Писане на обикновен текст във временен файл

В горните ни програми всички данни, записани във файлове, не са под формата на обикновен текстов формат. Ако искаме да го направим за прости текстови операции, можем просто да модифицираме файловия режим, когато отворим временния файл за модификации:

импортиране на tempfile
fileMode = 'w + t'
с tempfile.TemporaryFile (mode = fileMode) като файл:
файл.линии за запис (['Linux \ n', 'Ubuntu \ n'])
файл.търся (0)
за елемент във файл:
печат (т.rstrip ())

Ето какво получаваме обратно с тази команда:

Писане на обикновен текст във файла

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

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

внос os
импортиране на tempfile
tempFile = tempfile.NamedTemporaryFile ()
опитвам:
print ('tempFile: 0'.формат (tempFile))
print ('temp.tempFile: 0 '.формат (tempFile.име))
накрая:
# Изтриване на файла също
tempFile.близо()
print ('Съществува ли? : 0 '.формат (os.път.съществува (tempFile.име)))

Нека видим изхода за тази команда:

Именован tempfile

Ако не изтрием файла, можем да проверим съществуването му в друга програма и да го използваме, ако съществува на посоченото място.

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

За да идентифицираме лесно файловете, които принадлежат към нашите собствени процеси във файловата система, можем да приложим суфикс и префикс и към името на файла:

импортиране на tempfile
tempFile = tempfile.NamedTemporaryFile (суфикс = '_ ubuntu',
префикс = 'linuxhint_',
dir = '/ tmp',)
опитвам:
print ('tempFile:', tempFile)
print ('tempFile.name: ', tempFile.име)
накрая:
tempFile.близо()

Ето какво получаваме обратно с тази команда:

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

Предоставихме три параметъра на метода, който действа като суфикс и префикс за името на файла, което ще се превърне в местоположение, което сме посочили.

Заключение

В този урок разгледахме как можем да използваме модула tempfile на Python за управление на временни файлове в нашия код. Прочетете повече публикации на базата на Python тук.

Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...