Питхон

Питхон темпфиле модул

Питхон темпфиле модул
Често у нашим програмима морамо да похранимо неке привремене информације о стању програма и објектима који могу или не морају живјети изван стања самог програма. Подаци који се чувају у овим датотекама можда неће бити у читљивом облику или чак у облику који може користити било ко, али неки програми, алгоритми или хакери могу пронаћи начин да из ових података извуку податке који могу да жртвују сигурност система. Дакле, морамо створити логику која креира ове датотеке, написати неке податке, а затим и датотеке избрисати. Шта ако постоји нешто што апстрахује толико операција у нашем програму? Изгледа да у Питхону постоји модул за исти, темпфиле модул.

Примери са модулом темпфиле

Почећемо са једноставним примерима са Питхоном темпфиле модул овде.

Креирање привремених датотека

Прво што је потребно за спремање привремених података су датотеке у којима можемо да их похранимо. То се може учинити помоћу ТемпорариФиле () функцију. Највећа предност ове функције је када се датотека креира помоћу ове функције, а везе до ове датотеке се не успостављају у системском систему датотека, тако да другим процесима није могуће приступити тим датотекама.

Погледајмо једноставан програм који користи ТемпорариФиле () функција:

импорт ос
импорт темпфиле
# Коришћење ПИД-а у називу датотеке за бољу идентификацију
филе = '/ тмп / линукхинт_% с.ткт '% ос.гетпид ()
# Пружање режима датотеке
темп_филе = отвори (датотека, 'в + б')
покушати:
принт ('привремена датотека: 0'.формат (темп_филе))
принт ('темп_филе.име: 0 '.формат (темп_филе.име))
коначно:
темп_филе.Близу()
# Ми сами бришемо привремену датотеку
ос.уклони (датотека)
принт ('Привремени подаци о датотекама:')
темп_филе = темпфиле.ТемпорариФиле ()
покушати:
принт ('привремена датотека: 0'.формат (темп_филе))
принт ('темп_филе.име: 0 '.формат (темп_филе.име))
коначно:
# Чисти датотеку када се позове цлосе
темп_филе.Близу()

Ево шта добијамо овом командом:

Креирање привремене датотеке

Ова датотека се брише чим се Близу() функција се позива на темпфиле референца.

Читање из привремене датотеке

Чак је и читање из привремене датотеке лако и може се обавити једним позивом методе у истом модулу. Предност ове функције је у томе помаже нам да избегнемо сложене ИО операције укључени ако треба да радимо ове операције ручно. Ево програма који приказује ову функцију на делу:

импорт ос
импорт темпфиле
темпФиле = темпфиле.ТемпорариФиле ()
покушати:
принт ('Записивање података у темпФиле:')
темпФиле.врите (б'Ани дата цан го хере.')
темпФиле.тражити (0)
принт ('Читање обрасца података темпФиле: \ н \ т 0'.формат (темпФиле.читати()))
коначно:
темпФиле.Близу()

Погледајмо излаз за ову наредбу:

Питхон чита из привремене датотеке

Сав текст у привременим датотекама враћен је једним позивом методе.

Писање обичног текста у привремену датотеку

У нашим горе наведеним програмима сви подаци записани у датотеке нису били у облику једноставног формата обичног текста. Ако то желимо учинити за једноставне текстуалне операције, можемо само изменити режим датотеке када отворимо привремену датотеку за измене:

импорт темпфиле
филеМоде = 'в + т'
са темпфиле.Привремена датотека (мод = филеМоде) као датотека:
датотека.линије за писање (['Линук \ н', 'Убунту \ н'])
датотека.тражити (0)
за ставку у датотеци:
испис (ставка.рстрип ())

Ево шта добијамо овом командом:

Писање обичног текста у датотеку

Креирање именованих привремених датотека

Датотеке које треба обухватити више процеса морају бити именоване тако да их процес не брише када је завршен. Ево како можемо створити привремену именовану датотеку:

импорт ос
импорт темпфиле
темпФиле = темпфиле.НамедТемпорариФиле ()
покушати:
принт ('темпФиле: 0'.формат (темпФиле))
принт ('темп.темпФиле: 0 '.формат (темпФиле.име))
коначно:
# Брисање датотеке такође
темпФиле.Близу()
принт ('Да ли постоји? : 0 '.формат (ос.пут.постоји (темпФиле.име)))

Погледајмо излаз за ову наредбу:

Именована темпфиле

Ако датотеку не избришемо, можемо да проверимо да ли постоји у другом програму и употребимо је ако постоји на наведеном месту.

Навођење назива датотеке Суфикс и префикс

Да бисмо лако идентификовали датотеке које припадају нашим властитим процесима у систему датотека, можемо применити Суфикс и Префикс и на име датотеке:

импорт темпфиле
темпФиле = темпфиле.НамедТемпорариФиле (суфикс = '_ убунту',
префик = 'линукхинт_',
дир = '/ тмп',)
покушати:
принт ('темпФиле:', темпФиле)
принт ('темпФиле.наме: ', темпФиле.име)
коначно:
темпФиле.Близу()

Ево шта добијамо овом командом:

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

Обезбедили смо три параметра за методу која делује као суфикс и префикс за име датотеке која ће бити локација коју смо навели.

Закључак

У овој лекцији смо погледали како можемо да користимо Питхон темпфиле модул за управљање привременим датотекама у нашем коду. Прочитајте више постова заснованих на Питхону овде.

Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...
Како преузети и играти Сид Меиер'с Цивилизатион ВИ на Линук-у
Увод у игру Цивилизатион 6 је модерни поглед на класични концепт представљен у серији игара Аге оф Емпирес. Идеја је била прилично једноставна; започе...