Питхон

схутил модул у Питхон-у

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

Питхон схутил

Питхон схутил модул омогућава програмеру да користи објекте датотека врло лако и без дубљих детаља о томе како ствари функционишу испод покривача. Овај модул у основи апстрахује семантику ниског нивоа стварања и управљања објектима датотека, чистећи их након завршетка и омогућава нам да се фокусирамо на пословну логику апликације. Видећемо овде много примера, почнимо.

Примери са Питхон схутил модулом

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

Копирање датотеке

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

импорт ос
импорт схутил
филе_дирецтори = './Фајлови'
принт ('Датотеке пре:', ос.листдир (директоријум_датотеке))
схутил.копија датотека('./ Филес / здраво.ткт ','./ Филес / хелло_агаин.ткт ')
принт ('Датотеке после:', ос.листдир (директоријум_датотеке))

Управо смо копирали датотеку која постоји у датом директоријуму да бисмо је клонирали у истом директоријуму. Ево шта добијамо овом командом:

Копија датотеке Питхон схутил

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

Копирање датотека у други директоријум

Могуће је копирати датотеку у нови директоријум помоћу схутил-а копирај () функцију. Погледајмо то на делу:

импорт ос
импорт схутил
принт ('Израда новог директоријума.')
ос.мкдир ('ЛинукХинт')
принт ('Датотеке пре:', ос.листдир ('ЛинукХинт'))
схутил.цопи ('./ Филес / здраво.ткт ',' ЛинукХинт ')
принт ('Датотеке после:', ос.листдир ('ЛинукХинт'))

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

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

Имајте на уму да када се датотека копира помоћу копирај () функцију, дозволе за датотеку су такође клониране али метаподаци датотеке се не копирају. То значи да када проверите када је направљена ова датотека, приказује се ново време када сте покренули ову скрипту.

Копирање датотеке са метаподацима

У последњем одељку видели смо како можемо да направимо копију датотеке. Шта ако желите да направите тачан клон датотеке који укључује клонирање његових метаподатака, као и када је датотека направљена итд. И ово је могуће, али ово можда неће радити на систему заснованом на ПОСИКС-у. Погледајмо пример како се то може учинити:

импорт ос
импорт схутил
време увоза
нев_дирецтори = 'ЛинукХинт'
срц_филе = './ Филес / здраво.ткт '
дест_филе = './ ЛинукХинт / здраво.ткт '
деф филе_метадата (датотека):
стат_инфо = ос.стат (датотека)
принт ('Моде:', оцт (стат_инфо.ст_моде))
принт ('Направљено:', време.цтиме (стат_инфо.ст_цтиме))
принт ('Приступљено:', време.цтиме (стат_инфо.ст_атиме))
принт ('Измењено:', време.цтиме (стат_инфо.ст_мтиме))
ос.мкдир (нови_директоријум)
принт ('Метаподаци за изворну датотеку:')
филе_метадата (срц_филе)
схутил.цопи2 (срц_филе, нев_дирецтори)
принт ('Метаподаци за одредишну датотеку:')
филе_метадата (дест_филе)

Ево шта добијамо овом командом када је покренемо на систему заснованом на ПОСИКС-у (метаподаци нису клонирани у потпуности):

Копирајте датотеку са метаподацима

На системима који нису засновани на ПОСИКС-у, чак и креирано и приступљено време би се тачно поклопило.

Клонирање комплетног директоријума

У последњем одељку видели смо како можемо да направимо копију датотеке. Овде ћемо видети како можемо рекурзивно да клонирамо комплетан директоријум. То значи да ако постоји други директоријум у директоријуму који желимо да клонирамо, и они ће бити клонирани.

импорт ппринт
импорт схутил
импорт ос
срц_дирецтори = './Фајлови'
дест_дирецтори = './ ЛинукХинт '
схутил.цопитрее (срц_дирецтори, дест_дирецтори)
принт ('Садржај извора:')
отисак.отисак (ос.листдир (срц_дирецтори))
принт ('Садржај одредишта:')
отисак.отисак (ос.листдир (дест_дирецтори))

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

Дуплирање директоријума

Имајте на уму да директоријум који прослеђујемо цопитрее () функционише као одредишни директоријум не сме да постоји пре него што покренемо овај програм.

Брисање директоријума

Брисање директоријума је врло једноставно помоћу рмтрее () функција у модулу. Погледајмо ову функцију на делу овде:

импорт ппринт
импорт схутил
импорт ос
делете_дирецтори = 'ЛинукХинт'
цуррент_дирецтори = '.'
принт ('Садржај пре уклањања:')
отисак.отисак (ос.листдир (тренутни_директориј))
схутил.рмтрее (делете_дирецтори)
принт ('Садржај након уклањања:')
отисак.отисак (ос.листдир (тренутни_директориј))

Након покретања скрипте, ЛинукХинт директоријум се брише заједно са садржајем. Ево шта добијамо овом командом:

Избриши директоријум

Проналажење датотека

Ако желите да пронађете датотеку која је присутна на променљивој ПАТХ на вашем рачунару, можемо користити која() функција за проналажење те датотеке по имену. Погледајмо демонстрацијски пример за ову функцију:

импорт схутил
штампати (схутил.који ('бсондумп'))
штампати (схутил.вхицх ('но-филе-фоунд'))

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

Пронађи датотеку на ПАТХ

Надгледање простора датотечног система

Са модулом схутил имамо функцију диск_усаге () путем које можемо добити информације о простору на диску и о нашој машини. Погледајмо пример који приказује ове податке на човеку читљив начин:

импорт схутил
тотал_б, усед_б, фрее_б = схутил.диск_усаге ('.')
гб = 10 ** 9 # ГБ == гигабајт
принт ('Укупно: : 6.2ф ГБ '.формат (тотал_б / гб))
принт ('Коришћено: : 6.2ф ГБ '.формат (усед_б / гб))
принт ('Бесплатно: : 6.2ф ГБ '.формат (фрее_б / гб))

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

Проналажење простора система датотека

Архивирање директоријума

Као последњи пример, видећемо како можемо архивирати директоријум схутил модул маке_арцхиве () функцију. Погледајмо пример програма:

импорт схутил
импорт ос
арцхиве_дирецтори = \
ос.пут.прошириви корисник (ос.пут.придружи се ('одредиште-директоријум-путања', 'линукхинт'))
роот_дир = ос.пут.прошириви корисник (ос.пут.придружи се ('~', '.ссх '))
схутил.маке_арцхиве (арцхиве_дирецтори, 'гзтар', роот_дир)

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

Архивирање директоријума

Ако архивирате ТАР датотеку и погледате је, она ће садржати све .ссх датотеке директоријума у ​​њему.

Закључак

У овој лекцији смо погледали како лако можемо управљати објектима датотека помоћу датотека високог нивоа схутил модул у Питхон-у. Операције попут копирања садржаја датотеке, креирање нове копије датотеке итд. изгледало је лако са овим модулом.

Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...
Топ 5 карата за хватање игара
Сви смо видели и волели стримовање играња на ИоуТубе-у. ПевДиеПие, Јакесептицие и Маркиплиер само су неки од најбољих играча који су зарадили милионе ...
Како развити игру на Линуку
Пре деценију, није много корисника Линука предвидело да ће њихов омиљени оперативни систем једног дана бити популарна платформа за играње комерцијални...