Phyton бағдарламалау тілінде файлдармен жұмыс
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ ҒЫЛЫМ ЖӘНЕ БІЛІМ МИНИСТРЛІГІ
Ш.УӘЛИХАНОВ АТЫНДАҒЫ КӨКШЕТАУ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ
ТЕХНИКА ЖӘНЕ ТЕХНОЛОГИЯЛАР ФАКУЛЬТЕТІ
Ақпараттық жүйелер және есептеу техникасы кафедрасы
"Бағдарламалау технологиясы"пәні бойынша
КУРСТЫҚ ЖҰМЫС
Тақырыбы : Phyton бағдарламалау тілінде файлдармен жұмыс
ОРЫНДАДЫ: Балаубеков Ж.Б
ҚОРҒАУҒА ЖІБЕРІЛДІ
ОҚЫТУШЫ: ЕСМАГАМБЕТОВА Г.К.
БАҒАСЫ:
КӨКШЕТАУ 2020
Мазмұны
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1. Python " ашық (...) ретінде ..."үлгі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
2. Каталогтар тізімін алу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8
2.1 Ескірген Python нұсқаларында каталогтар тізімі ... ... ... ... ... ... ... . ... ... ... .9
2.2 Қазіргі Python нұсқаларында листинг каталогы ... ... ... ... ... ... ... ... ... ... ... .10
2.3 Каталогта барлық файлдарды аудару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... 13
2.4 Аудару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .15
3. Файл Атрибуттарын Алу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17
4. Каталогтар Құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 19
4.1 Бірыңғай каталог жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... .20
4.2 Бірнеше Каталогтар Жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... .. 21
5. Файл Атының Үлгіге Сәйкестігі ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ..23
5.1 Жол Әдістерін Қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..24
5.2 Fnmatch көмегімен файл атауы үлгісін қарапайым салыстыру ... ... ... ... .25
5.3 Неғұрлым Озық Салыстыру Үлгісі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ..2 6
5.4 Glob көмегімен файл атының үлгісін салыстыру ... ... ... ... ... ... .. ... ... ... ..26
6. Каталогтарды аралау және файлдарды өңдеу ... ... ... ... ... ... ... .. ... ... ... ... .29
7. Уақытша файлдар мен каталогтар жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... 32
8. Файлдар мен каталогтарды жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...34
8.1 Python ішінде файлдарды жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...34
8.2 Каталогтарды Жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..37
8.3 Каталогтардың Тұтастай Жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...38
9. Файлдар мен каталогтарды көшіру, жылжыту және қайта атау ... ... ... .39
9.1 Файлдарды Python ішіне көшіру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... 39
9.2 Каталогтарды Көшіру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ..40
9.3 Файлдар мен каталогтарды жылжыту ... ... ... ... ... ... ... ... ... ... ... ... ... ... 41
9.4 Файлдар мен каталогтарды қайта атау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 41
10. Мұрағаттау ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..42
10.1 ZIP файлдарын оқу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..42
10.2 Zip архивтерді шығару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...44
10.3 Мұрағаттардың Құпия Сөздерінен Деректерді Алу ... ... ... ... ... ... ... ... 46
10.4 Жаңа ZIP архивтерін жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..46
10.5 TAR архивтерін ашу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...47
10.6 Архивтерді құрудың қарапайым тәсілі ... ... ... ... ... ... ... . ... ... ... ... ... ...49
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..51
Әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..53
КІРІСПЕ
Python ыңғайлылығы оны машинамен оқыту және жасанды интеллект үшін ең танымал тілді жасады. Python икемділігі Anyscale mLAI ноутбуктардан кластерлерге дейін масштабталатын жасауға мүмкіндік берді.
Dean Wampler
Қазіргі уақытта байқалып отырған дербес есептеу техникасының қарқынды дамуына байланысты бағдарламалау тілдеріне қойылатын талаптардың біртіндеп өзгеруі орын алуда. Жеке компьютерлердің өсіп келе жатқан қуаты түсіндірілетін бағдарламаларды орындаудың жеткілікті жылдамдығын қамтамасыз ете бастайтындықтан, түсіндірілетін тілдер үлкен рөл атқара бастайды. Ал компиляцияланатын бағдарламалау тілдерінің бірден-бір маңызды артықшылығы олар жасайтын жоғары жылдамдықты код болып табылады. Бағдарламаны орындау жылдамдығы сыни шамада болмаса, ең дұрыс таңдау қарапайым және икемді бағдарламалау құралы ретінде түсіндірілетін тіл болады.Менің курстық жұмысымда Python бағдарламасы арқылы файлдармен жұмыс жасау.Біздің бұл жұмыстарымыз технология заманы дамығаннан бастап,оның ішінде бағдарламалау саласына келетін болсақ,бүгінгі күннің сұранысы деп санаймын. Басқа бағдарламалау тілдерінен айырмашылығы, Python ерекше жиі алгоритмдерді жеңілдету үшін қызмет етеді.
Python бірнеше кіріктірілген модульдер мен файлдарды өңдеу мүмкіндіктері бар. Бұл функциялар os, os.pathshutil және pathlib сияқты бірнеше модульдерге бөлінген. Бұл курстық жұмыс барысында Python ең көп таралған операцияларды орындау үшін білу қажет көптеген функциялар бір жерде жинақталған.
Біз мұнда нені білеміз:
*Файл сипаттарын алу
*Каталогтар жасау
*Файл атауларындағы үлгілердің сәйкес келуі
*Траверс каталогтары ағаштары
*Уақытша файлдар мен каталогтар жасау
*Файлдар мен каталогтарды жою
*Файлдар мен каталогтарды көшіру, жылжыту немесе қайта атау
*ZIP және TAR мұрағаттарын жасау және шығару
*Fileinput модульді пайдаланып бірнеше файлды ашыңыз
Python " ашық (...) ретінде ..."үлгі
Python арқылы файлдарды оқу және жазу өте оңай. Ол үшін алдымен тиісті режимде файлдарды ашу керек. Міне, Python үлгісін қалай пайдалануға болады " with open (...) as ..."мәтіндік файлды ашу және оның мазмұнын оқу үшін:
1-сурет
open () файл атауын және режимін аргументтер ретінде қабылдайды. файлды тек оқу үшін ғана ашады. Деректерді Файлға жазу үшін, оның орнына оларды Аргументтің W тоқымасында жіберіңіз:
2-сурет
Осы мысалдарда open () оқу немесе жазу үшін файлдарды ашады және файлға деректерді оқу немесе жазу үшін пайдаланылатын әдістерді ұсынатын файлдың дескрипторын (FB бұл жағдайда) қайтарады. Оқу файлдарды қалай оқу және жазу туралы қосымша ақпарат алу үшін Python файлдық енгізу-шығару.
2. Каталогтар тізімін алу
Сіздің ағымдағы жұмыс каталогы келесі мазмұнға иеmy_directory атауы бар каталогы бар:
3-сурет
SQL-дің ішіндегі каталог мазмұнын аудару және нәтижелерді сүзу үшін пайдаланылуы мүмкін бірқатар пайдалы функциялар бар. Файл жүйесінің белгілі бір каталогында барлық файлдар мен қалталар тізімін алу үшін os пайдаланыңыз.listdir () Ескірген Python немесе os нұсқаларында.scandir () жылы Python 3.x. os.scandir () сіз сондай-ақ файлдың және каталогтың қасиеттерін алуға келсе, пайдалану үшін қолайлы әдіс болып табылады, мұндай Файл мөлшері және өзгерту күні.
2.1 Ескірген Python нұсқаларында каталогтар тізімі
Python нұсқаларында Python 3, os дейін.listdir () каталогтар тізімін алу үшін пайдалану әдісі:
4-сурет
os.listdir () path аргументі берілген каталогта файлдар мен ішкі каталогтар аттары бар Python тізімін қайтарады:
5-сурет
Каталогтар тізімі, бұл жай ғана оқып емес. Os-дан шақыруды басып шығару.listdir () цикл арқылы заттарды тазалауға көмектеседі:
6-сурет
2.2 Қазіргі Python нұсқаларында листинг каталогы
Қазіргі Python нұсқаларында, os балама.listdir () os пайдалану болып табылады.scandir () және pathlib.Path()
os.scandir () Python 3.5 ұсынылған және PEP 471-де құжатталған. os.scandir () шақыру тізіміне қарағанда итераторды қайтарады:
7-сурет
ScandirIteratorУ барлық жазбалар ағымдағы анықтамалығында көрсетілген. Сіз Итератор мазмұнындағы циклді орындап, файл аттарын басып шығара аласыз:
8-сурет
Мұнда os.scandir () ол context manager протоколын қолдайды. Контекстік менеджерді пайдалану итераторды жабады және Итератор таусылғаннан кейін алынған ресурстарды автоматты түрде босатады. Нәтиже my_directoryos-да көрген сияқты бірдей түрде файл аттарын басып шығару болып табылады.listdi () мысал:
9-сурет
Каталогтар тізімін алудың тағы бір жолы-pathlibмодельді пайдалану:
10-сурет
Қайтарылатын объектілер path-ті операциялық жүйеге байланысты Windowspathобъектімен немесе PosixPathили.
pathlib.Path () нысандары бар .iterdir () каталогта барлық файлдар мен қалталардың итераторын жасау әдісі. Көмегімен алынған әрбір жазба .iterdir () файлдың аты және файл атрибуттары сияқты файл немесе каталог туралы ақпаратты қамтиды. pathlibvpervые Python 3.4-те ұсынылған және файлдық жүйе үшін объектілі-бағытталған интерфейсті ұсынатын Python-ға тамаша қосымша болып табылады.
Жоғарыда келтірілген мысалда сіз pathlib шақырасыз.Path () және оған path аргументін беріңіз. Бұдан әрі шақыру жүріп жатыр.iterdir () my_directory барлық файлдар мен каталогтар тізімін алу үшін.
pathlib қарапайым, объектілі-бағытталған жолдармен жалпы операциялардың көпшілігі бар сыныптар жиынтығын ұсынады. Pathliba пайдалану оѕВ функцияларын пайдалану сияқты тиімді болмаса, көп болып табылады. Pathlibover os пайдаланудың тағы бір артықшылығы, бұл файл жүйесінің жолдарын айла-шарғы жасау үшін қажет импорт санын азайтады. Қосымша ақпарат алу үшін Python 3's pathlib Module: Taming the File System .
Жоғары кодты орындау келесі нәтижелерге әкеледі:
11-сурет
Pathlib пайдалану.Path () немесе os.scandir () орнына os.listdir () бұл файл түрі мен файл атрибуты туралы ақпарат талап етілетін кодпен жұмыс істесе, әсіресе каталогтар тізімін алудың қолайлы тәсілі болып табылады. pathlib.Path () osandshutil табылған файлдар мен жолдарды өңдеу функционалдық мүмкіндіктерінің көп бөлігін ұсынады, және оның әдістері осы модульдер табылған кейбір қарағанда тиімді. Біз жақын арада файл қасиеттерін алуға қалай талқылаймыз.
Міне, тағы да функция каталогы:
Сипаттама Функциясы
os.listdir ()
каталогтағы барлық файлдар мен қалталар тізімін қайтарады
os.scandir ()
file атрибуты туралы ақпаратты қоса алғанда, каталогтағы барлық нысандардың итераторын қайтарады
pathlib.Path.iterdir ()
file атрибуты туралы ақпаратты қоса алғанда, каталогтағы барлық нысандардың итераторын қайтарады
2.3 Каталогта барлық файлдарды аудару
Бұл бөлім os арқылы каталогтағы файлдар атауларын басып шығару жолын көрсетеді.listdir(), os.scandir (), және pathlib.Path(). Каталогтарды және тек тізімнің файлдарын кодтау үшін, көмекшісімен құрылған каталогтар тізімінен.listdir(), қолданыңызѕ.path:
12-сурет
Мұнда os шақыру.listdir () көрсетілген жолда тізімді қайтарады, содан кейін бұл тізім os сүзгілейді.path.isfile () тек каталогтар емес, файлдарды басып шығару үшін. Бұл келесі нәтижелерге әкеледі:
13-сурет
Каталогтағы файлдарды тізімдеу оңай жолы-os пайдалану.scandir () ipatlib.Path():
14-сурет
Os пайдалану.scandir () таза көрінеді және көмекші қарағанда түсіну оңай қандай артықшылығы бар.listdir (), бірақ бұл бір код жолы ұзағырақ. Егер нысан файл болса, Scandiriteratorвозвозвозвратахtrue әр элементке entry.is_file()шақыру. Каталогтағы барлық файлдардың атауларын басып шығару келесі шығыс деректерін береді:
15-сурет
Міне, каталогтағы файлдарды қалай көрсету керекpathlib.Path():
16-сурет
Міне, сіз қоңырау шаласыз .is_file () әрбір жазба бойынша .iterdir(). Шығарылған шығу бірдей:
17-сурет
Жоғарыда келтірілген кодты генератордың бір өрнегіне forциклді және if операторды біріктірген жағдайда, неғұрлым қысылған етуге болады. Дэн Бадер генераторлық көріністер мен пікірлердің тізімдері туралы тамаша мақала бар.
Өзгертілген нұсқа келесідей:
18-сурет
Бұл алдыңғы мысалмен бірдей нәтиже береді. Бұл бөлім os арқылы файлдарды немесе каталогтарды сүзу екенін көрсетті.scandir () және pathlib.Path () интуитивті сезінеді және os қарағанда таза көрінеді.listdir () os үйлесімінде.maths.
2.4 Аудару
Файлдардың орнына каталогтарды тізімдеу үшін келесі әдістердің бірін пайдаланыңыз. Мұнда os пайдалану әдісі.listdir () иоѕ.path():
19-сурет
Файл жүйесінің жолдарын манипуляциялау, осылайша, сіз бірнеше қоңырау бар кезде тез қатты болуы мүмкін.path.join(). Бұл бағдарламаны менің компьютерімде іске қосу келесі нәтижелерге әкеледі:
Бұл қалай пайдалану керек.scandir():
21-сурет
Файл тізімімен мысал ретінде, мұнда .is_dir()os қайтарылған әрбір жазбаны шақырасыз.scandir () пайдаланушы . Егер жазба каталог болса,. is_dir()қайтару, және каталог аты басып шығарылады. Шығу жоғары сияқты:
22-сурет
Бұл қалай пайдалану pathlib.Path():
23-сурет
Шақыру. is_dir () basepathiterator жазбасының файл немесе каталогы екенін тексереді. Егер жазба каталог болса, оның аты экранға шығады және алынған нәтиже алдыңғы мысалдағыдай болады:
24-сурет
3. Файл Атрибуттарын Алу
Python файл өлшемі және өзгерту уақыты сияқты файл атрибуттарын шығаруды жеңілдетеді. Бұл os арқылы жасалады.stat(),os.scandir (), немесе pathlib.Path().
os.scandir () және pathlib.Path () тіркесімде файл атрибуттары бар каталогтар тізімін алу. Бұл os пайдалану қарағанда әлеуетті неғұрлым тиімді болуы мүмкін.listdir () файлдарды аудару және әрбір файл үшін файл атрибуттарының ақпаратын алу үшін.
Төменде келтірілген мысалдаmy_directoryфайлдарын соңғы өзгерту уақытын қалай алуға болады. Шығу секундта:
25-сурет
os.scandir () Scandiriteratorо нысанды қайтарады. Scandiriterator объектідегі әрбір жазба бар .stat () ол көрсететін файл немесе каталог туралы ақпаратты алатын әдіс. .stat () файл өлшемі және соңғы өзгерту уақыты сияқты мәліметтерді береді. Жоғарыда келтірілген мысалда код файл мазмұнының соңғы өзгеруінің уақыты болып табылатын st_mtimeатрибут шығарады.
Pathlib модель сол нәтижелер беретін файл туралы ақпарат алу үшін тиісті әдістербар:
26-сурет
Жоғарыда келтірілген мысалда код қайтарылатын нысан бойынша циклді орындайды .iterdir () нысан, және файл атрибуттарын пайдаланып шығарады .каталогтар тізіміндегі әрбір файл үшін stat()қоңырау. st_mtimeatribut дәуір басталған сәттен бастап секундтарды білдіретін өзгермелі үтірмен мәнді қайтарады . Көрсету үшін st_mtime қайтарылатын мәндерді түрлендіру үшін datetimeобъектіге секундты түрлендіру үшін көмекші функцияны жазуға болады:
27-сурет
Бұл алдымен my_directory және олардың атрибуттары файлдарының тізімін алуға, содан кейін convert_date()әрбір файлдың соңғы өзгертілген уақытын адамның ыңғайлы формасында түрлендіру үшін шақыруға мүмкіндік береді. convert_date () пайдаланады .strftime () уақытты секундқа түрлендіру үшін.
Берілген аргументтер .strftime () келесі:
%d: ай күні
%b: ай, қысқартылған түрде
% Y: Шығарылған жылы
Бұл директивалар бірге келесідей нәтиже береді:
28-сурет
Күн мен уақытты жолға айналдыру үшін Синтаксис өте шатасуы мүмкін. Бұл туралы көбірек білу үшін осы мәселе бойынша ресми құжаттамамен танысыңыз. Есте сақтау оңай тағы бір ыңғайлы сілтеме-бұл http:strftime.org .
4. Каталогтар Құру
Ерте ме, кеш пе, сіз жазатын бағдарламалар оларға деректерді сақтау үшін каталогтар жасау керек. оѕи pathlib каталогтар жасау үшін функцияларды қосу. Біз оларды қарастырамыз:
Сипаттама
Функциясы
os.mkdir ()
бір ішкі салық жасайды
pathlib.Path.mkdir ()
бір немесе бірнешкаталогта жасайды
os.makedirs ()
аралық каталогтарды қоса алғанда, бірнеше каталогтар жасайды
4.1 Бірыңғай каталог жасау
Бір каталогты жасау үшін, toos параметрі ретінде каталогқа жол беріңіз.mkdir():
29-сурет
Егер каталог бар болса, os.mkdir () FileExistsError шақырады. Сонымен қатар, сіз pathlib көмекшісімен каталог жасай аласыз:
30-сурет
Егер жол бар болса, mkdir () онда aFileExistsError:
31-сурет
Мұндай қателерді болдырмау үшін, ол болған кезде қатені ұстаңыз және бұл туралы өз пайдаланушысына хабарлаңыз:
32-сурет
Сонымен қатар, сіз Exist_ok=Тгиеаргумент в. mkdir беру арқылы Fileexistserroreg елемеуге болады.():
33-сурет
Егер каталог бар болса, бұл қате болмайды.
4.2 Бірнеше Каталогтар Жасау
os.makedirs () os сияқты.mkdir(). Олардың арасындағы айырмашылық-олар тек os ғана емес.makedirs () жасау жеке каталогтар, сондай-ақ ағаш каталогтар құру үшін пайдаланылады. Басқаша айтқанда, ол толық жол бар екеніне кепілдік беру үшін кез келген қажетті аралық қалталарды жасай алады.
os.makedirs () бұл mkdir-рв Баш жүгіру сияқты. Мысалы, 20181005 типті каталогтар тобын құру үшін , Сіз істеу керек барлық нәрсе, бұл келесі:
Бұл 2018, 10 және 05 қалталары бар ішкі каталог құрылымын жасайды:
34-сурет
.makedirs () әдепкі рұқсаттары бар каталогтар жасайды. Егер әр түрлі қоңырау рұқсаттары бар каталогтар жасау қажет болса .makedirs () және сіз каталогтар құрылған қалайтын режимде беру:
35-сурет
Бұл 201810 05каталогтардың құрылымын жасайды және топтың иесі мен пайдаланушыларына оқуға, жазуға және орындауға рұқсат береді. Әдепкі Режим 0о777 болып табылады және бар ата-аналық каталогтар файлының рұқсатының биттері өзгертілмейді. Файлдарға кіру рұқсаттары және осы режимді қолдану тәсілдері туралы қосымша ақпарат алу үшін құжаттардан қараңыз.
Дұрыс рұқсаттарды қолдануды растау үшін treeд іске қосу:
36-сурет
Бұл ретте ағымдағы каталогтың каталогтар ағашы шығарылады. tree каталогтар мазмұнының тізімін ағаш тәрізді пішімде шығару үшін пайдаланылады. Аргументтерді жібергенде-ри-ів каталогтардың аттары және олардың тік тізімде файлдарға кіруге рұқсат беру туралы ақпараты көрсетіледі. - файлға қол жеткізу құқығын қайта басып шығарады және-іееѕ тік тізімді шегініс сызықтарынсыз құрастыруға рұқсат береді.
Сіз көре аласыз, барлық каталогтар бар 770. Каталогтарды құрудың балама жолы-пайдалану.mkdir () изpathlib.Path:
37-сурет
Өту parents=Тгиек Path.mkdir () оны жасау 05 каталогы жол беруге қажетті кез келген ата-аналық каталогтар.
Әдепкі, os.makedirs () және Path.mkdir () егер мақсатты каталог бар болса, шақыру. Бұл мінез-құлық (Python 3.2 бастап) exist_ok=Тгиев арқылы әр функцияны шақырғанда негізгі дәлел ретінде анықталуы мүмкін.
Жоғары кодты іске қосу төменде келтірілген каталогтар құрылымын бір рет жасайды:
38-сурет
Мен бір немесе ішкі каталогтар жасау үшін бірдей функцияны пайдалана аламын, өйткені каталогтар жасау pathlibпри пайдалану қалаймын.
5. Файл Атының Үлгіге Сәйкестігі
Каталогтағы файлдар тізімін жоғарыда әдістердің бірі арқылы алғаннан кейін, сіз белгілі бір үлгіге сәйкес келетін файлдарды таба аласыз.
Бұл сізге қолжетімді әдістер мен функциялар:
endswith () және startswith () жол әдістері
fnmatch.fnmatch()
glob.glob()
pathlib.Path.glob()
Олардың әрқайсысы төменде талқыланады. Бұл бөлімдегі мысалдар келесі құрылым деп аталатын және бар каталогыsome_directory үшін орындалады:
39-сурет
Егер сіз Bash қабығын пайдалану арқылы жүрсеңіз, келесі пәрмендерді пайдалана отырып, жоғарыда көрсетілген каталог құрылымын жасай аласыз:
40-сурет
Бұл some_directoryкаталог жасау, оны өзгерту, содан кейін жасауsub_dir. Келесі жол file1 құрады.руи file2.pyinsub_dir, ал соңғы жол кеңейту арқылы барлық қалған файлдарды жасайды.
5.1 Жол Әдістерін Қолдану
Python жолды өзгерту және манипуляциялау үшін бірнеше кіріктірілген әдістері бар . Осы әдістердің екі .startswith () а .endswith (), сондай-ақ, файл атауларында үлгілер іздегенде пайдалы. Ол үшін алдымен каталогтар тізімін алып, оны қайталаңыз:
41-сурет
Жоғарыда келтірілген код барлық файлдарsome_directory табады, оларды қайталайды және пайдаланады .endswith () басып шығару үшін файл атаулары кеңейту.txtфайл. Бұл бағдарламаны менің компьютерімде іске қосу келесі нәтижелерге әкеледі:
42-сурет
5.2 Fnmatch көмегімен қарапайым файл Үлгісі
Жол әдістері салыстыру мүмкіндіктерімен шектелген. fnmatch үлгімен салыстыру үшін озық функциялар мен әдістерді біледі. Біз қараймызfnmatch.fnmatch (), *және сияқты орнату белгілерін пайдалануды қолдайтын функция ?файл аттарын салыстыру үшін. Мысалы, бәрін табу үшін .көмекімен каталогта txtфайлдарfnmatch, сіз келесі еді:
43-сурет
Бұл some_directoryi пайдаланатын файлдар тізімінің үстінде қайталанады .fnmatch () бар файлдар үшін орналастыру белгілерін іздеу үшін .TXT кеңейтуі.
5.3 Неғұрлым Озық Салыстыру Үлгісі
Мысалы, Сіз табу керек .белгілі бір критерийлерге сәйкес келетін txtфайлдар. Мысалы, сіз іздеуге ғана мүдделі болуы мүмкін .txtфайлов қамтитын словоdata саны арасындағы жиынтығымен айдаһарлар болды және сөз backupв олардың файлдың атауы. Data_01_backupdata_02_backup немесе data_03_backup сияқты нәрсе.
Fnmatch арқылы.fnmatch (), сіз мұны осылай жасай аласыз:
44-сурет
Мұнда сіз тек data_*_backup файл аттарын басып шығарасыз.txtшаблону. Үлгідегі жұлдызша кез келген таңбаға сәйкес келеді, сондықтан осы қолданбаны іске қосқан кезде dataи деген сөзден басталатын Барлық мәтіндік файлдарbackup деп аяқталатын болады.TXT, сіз төменде шығыс деректерді көре аласыз:
45-сурет
5.4 Glob көмегімен файл атының үлгісін салыстыру
Үлгіні салыстыру үшін тағы бір пайдалы модуль-glob.
.glob () globmodulда fnmatch сияқты жұмыс істейді.fnmatch (), бірақ fnmatch айырмашылығы.fnmatch () бұл нүктеден басталатын файлдарды өңдейді (.), арнайы ретінде.
UNIX және онымен байланысты жүйелер ат үлгілерін, мысалы, орнату белгілері арқылы ауыстырады ма ?және * файлдар тізіміне. Бұл жаһандану деп аталады.
Мысалы, MV *.Py python_files мәтін енгізу UNIX қабықшасында (mv) барлық файлдарды с жылжытады .ағымдағы каталогтан python_files каталогына кеңейту. * Символ - "таңбалардың кез келген санын" және *білдіреді.Глобус үлгісі басқарылады. Бұл қабықшаның мүмкіндігі Windows операциялық жүйесінде қол жетімді емес. globmodul бұл мүмкіндікті Python бағдарламасына қосады, бұл Windows бағдарламалары осы мүмкіндікті пайдалануға мүмкіндік береді.
Мұнда барлық іздеу globdle пайдалану үлгісі .ағымдағы каталогта Python руисходных файлдар ( ) :
46-сурет
glob.glob ('*. py') бар барлық файлдарды іздейді.ағымдағы каталогта кеңейту және оларды тізім түрінде қайтарады. globtacже үлгілерге сәйкес келетін қабық стиліндегі орналасу белгілерінің үлгілерін қолдайды:
47-сурет
Бұл барлық мәтінді табады .файл атауында сандар бар txtфайлдар ( ):
48-сурет
glob ол оңай іздеуге файлдар рекурсивті, сондай-ақ:
49-сурет
Бұл мысал glob қолданылады.iglob () іздеу үшін .ағымдағы каталогта және ішкі каталогта руфайлдар. Беріліс recursive=Тгиев үшін дәлел ретінде .iglob () оны іздейді .ағымдағы каталогтағы және кез келген каталогтағы руфайлдар. Glob арасындағы айырмашылық.iglob () және glob.glob () бұл .iglob () тізімнің орнына итераторды қайтарады.
Жоғарыда бағдарламаны іске қосу келесідей:
50-сурет
pathlib икемді файлдар тізімін жасау үшін ұқсас әдістерді қамтиды. Төменде келтірілген мысалда қалай пайдалануға болады.Path.glob () әріптен басталатын файлдар түрлерінің тізімі:
51-сурет
P.glob('*.p*') РВ әрпінен басталатын ағымдағы каталогтағы барлық файлдарды көрсететін генератор объектісін қайтарады.
Path.glob () бұл os сияқты.glob () жоғарыда талқыланған нәрсе. Сіз көре аласыз, pathlibсочетает көптеген үздік функцийоѕоѕ.path , және globmoduly бір модуль, ол пайдалануға қуаныш етеді.
Қорытынды үшін, мұнда біз осы бөлімде қаралған функциялар кестесі:
Сипаттама
Функциясы
startswith ()
жолдың көрсетілген үлгіден басталатынын тексереді және Тгиеили False қайтарады
endswith ()
жол белгіленген үлгімен аяқталатынын тексереді және белгіні қайтарады немесе False
fnmatch.fnmatch (filename, pattern
Файл атауы үлгіге сәйкес келе ме және false-ді қайтарады
glob.glob ()
үлгіге сәйкес келетін файлдар атауларының тізімін қайтарады
pathlib.Path.glob ()
жол аттарында үлгілерді тауып, генераторды қайтарады
6. Каталогтарды аралау және файлдарды өңдеу
Бағдарламалаудың жалпы міндеті-ағаш каталогтардың жүру және ағаш файлдарын өңдеу. Python os функциясы ретінде қарастырайық.walk () бұл үшін пайдаланылуы мүмкін. os.walk () ағашты айналып өту арқылы немесе жоғарыдан төмен немесе төменнен жоғары ... жалғасы
Ш.УӘЛИХАНОВ АТЫНДАҒЫ КӨКШЕТАУ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ
ТЕХНИКА ЖӘНЕ ТЕХНОЛОГИЯЛАР ФАКУЛЬТЕТІ
Ақпараттық жүйелер және есептеу техникасы кафедрасы
"Бағдарламалау технологиясы"пәні бойынша
КУРСТЫҚ ЖҰМЫС
Тақырыбы : Phyton бағдарламалау тілінде файлдармен жұмыс
ОРЫНДАДЫ: Балаубеков Ж.Б
ҚОРҒАУҒА ЖІБЕРІЛДІ
ОҚЫТУШЫ: ЕСМАГАМБЕТОВА Г.К.
БАҒАСЫ:
КӨКШЕТАУ 2020
Мазмұны
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1. Python " ашық (...) ретінде ..."үлгі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
2. Каталогтар тізімін алу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8
2.1 Ескірген Python нұсқаларында каталогтар тізімі ... ... ... ... ... ... ... . ... ... ... .9
2.2 Қазіргі Python нұсқаларында листинг каталогы ... ... ... ... ... ... ... ... ... ... ... .10
2.3 Каталогта барлық файлдарды аудару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... 13
2.4 Аудару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .15
3. Файл Атрибуттарын Алу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17
4. Каталогтар Құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 19
4.1 Бірыңғай каталог жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... .20
4.2 Бірнеше Каталогтар Жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... .. 21
5. Файл Атының Үлгіге Сәйкестігі ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ..23
5.1 Жол Әдістерін Қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..24
5.2 Fnmatch көмегімен файл атауы үлгісін қарапайым салыстыру ... ... ... ... .25
5.3 Неғұрлым Озық Салыстыру Үлгісі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ..2 6
5.4 Glob көмегімен файл атының үлгісін салыстыру ... ... ... ... ... ... .. ... ... ... ..26
6. Каталогтарды аралау және файлдарды өңдеу ... ... ... ... ... ... ... .. ... ... ... ... .29
7. Уақытша файлдар мен каталогтар жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... 32
8. Файлдар мен каталогтарды жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...34
8.1 Python ішінде файлдарды жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...34
8.2 Каталогтарды Жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..37
8.3 Каталогтардың Тұтастай Жою ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...38
9. Файлдар мен каталогтарды көшіру, жылжыту және қайта атау ... ... ... .39
9.1 Файлдарды Python ішіне көшіру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... 39
9.2 Каталогтарды Көшіру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ..40
9.3 Файлдар мен каталогтарды жылжыту ... ... ... ... ... ... ... ... ... ... ... ... ... ... 41
9.4 Файлдар мен каталогтарды қайта атау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 41
10. Мұрағаттау ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..42
10.1 ZIP файлдарын оқу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..42
10.2 Zip архивтерді шығару ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...44
10.3 Мұрағаттардың Құпия Сөздерінен Деректерді Алу ... ... ... ... ... ... ... ... 46
10.4 Жаңа ZIP архивтерін жасау ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..46
10.5 TAR архивтерін ашу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...47
10.6 Архивтерді құрудың қарапайым тәсілі ... ... ... ... ... ... ... . ... ... ... ... ... ...49
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..51
Әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..53
КІРІСПЕ
Python ыңғайлылығы оны машинамен оқыту және жасанды интеллект үшін ең танымал тілді жасады. Python икемділігі Anyscale mLAI ноутбуктардан кластерлерге дейін масштабталатын жасауға мүмкіндік берді.
Dean Wampler
Қазіргі уақытта байқалып отырған дербес есептеу техникасының қарқынды дамуына байланысты бағдарламалау тілдеріне қойылатын талаптардың біртіндеп өзгеруі орын алуда. Жеке компьютерлердің өсіп келе жатқан қуаты түсіндірілетін бағдарламаларды орындаудың жеткілікті жылдамдығын қамтамасыз ете бастайтындықтан, түсіндірілетін тілдер үлкен рөл атқара бастайды. Ал компиляцияланатын бағдарламалау тілдерінің бірден-бір маңызды артықшылығы олар жасайтын жоғары жылдамдықты код болып табылады. Бағдарламаны орындау жылдамдығы сыни шамада болмаса, ең дұрыс таңдау қарапайым және икемді бағдарламалау құралы ретінде түсіндірілетін тіл болады.Менің курстық жұмысымда Python бағдарламасы арқылы файлдармен жұмыс жасау.Біздің бұл жұмыстарымыз технология заманы дамығаннан бастап,оның ішінде бағдарламалау саласына келетін болсақ,бүгінгі күннің сұранысы деп санаймын. Басқа бағдарламалау тілдерінен айырмашылығы, Python ерекше жиі алгоритмдерді жеңілдету үшін қызмет етеді.
Python бірнеше кіріктірілген модульдер мен файлдарды өңдеу мүмкіндіктері бар. Бұл функциялар os, os.pathshutil және pathlib сияқты бірнеше модульдерге бөлінген. Бұл курстық жұмыс барысында Python ең көп таралған операцияларды орындау үшін білу қажет көптеген функциялар бір жерде жинақталған.
Біз мұнда нені білеміз:
*Файл сипаттарын алу
*Каталогтар жасау
*Файл атауларындағы үлгілердің сәйкес келуі
*Траверс каталогтары ағаштары
*Уақытша файлдар мен каталогтар жасау
*Файлдар мен каталогтарды жою
*Файлдар мен каталогтарды көшіру, жылжыту немесе қайта атау
*ZIP және TAR мұрағаттарын жасау және шығару
*Fileinput модульді пайдаланып бірнеше файлды ашыңыз
Python " ашық (...) ретінде ..."үлгі
Python арқылы файлдарды оқу және жазу өте оңай. Ол үшін алдымен тиісті режимде файлдарды ашу керек. Міне, Python үлгісін қалай пайдалануға болады " with open (...) as ..."мәтіндік файлды ашу және оның мазмұнын оқу үшін:
1-сурет
open () файл атауын және режимін аргументтер ретінде қабылдайды. файлды тек оқу үшін ғана ашады. Деректерді Файлға жазу үшін, оның орнына оларды Аргументтің W тоқымасында жіберіңіз:
2-сурет
Осы мысалдарда open () оқу немесе жазу үшін файлдарды ашады және файлға деректерді оқу немесе жазу үшін пайдаланылатын әдістерді ұсынатын файлдың дескрипторын (FB бұл жағдайда) қайтарады. Оқу файлдарды қалай оқу және жазу туралы қосымша ақпарат алу үшін Python файлдық енгізу-шығару.
2. Каталогтар тізімін алу
Сіздің ағымдағы жұмыс каталогы келесі мазмұнға иеmy_directory атауы бар каталогы бар:
3-сурет
SQL-дің ішіндегі каталог мазмұнын аудару және нәтижелерді сүзу үшін пайдаланылуы мүмкін бірқатар пайдалы функциялар бар. Файл жүйесінің белгілі бір каталогында барлық файлдар мен қалталар тізімін алу үшін os пайдаланыңыз.listdir () Ескірген Python немесе os нұсқаларында.scandir () жылы Python 3.x. os.scandir () сіз сондай-ақ файлдың және каталогтың қасиеттерін алуға келсе, пайдалану үшін қолайлы әдіс болып табылады, мұндай Файл мөлшері және өзгерту күні.
2.1 Ескірген Python нұсқаларында каталогтар тізімі
Python нұсқаларында Python 3, os дейін.listdir () каталогтар тізімін алу үшін пайдалану әдісі:
4-сурет
os.listdir () path аргументі берілген каталогта файлдар мен ішкі каталогтар аттары бар Python тізімін қайтарады:
5-сурет
Каталогтар тізімі, бұл жай ғана оқып емес. Os-дан шақыруды басып шығару.listdir () цикл арқылы заттарды тазалауға көмектеседі:
6-сурет
2.2 Қазіргі Python нұсқаларында листинг каталогы
Қазіргі Python нұсқаларында, os балама.listdir () os пайдалану болып табылады.scandir () және pathlib.Path()
os.scandir () Python 3.5 ұсынылған және PEP 471-де құжатталған. os.scandir () шақыру тізіміне қарағанда итераторды қайтарады:
7-сурет
ScandirIteratorУ барлық жазбалар ағымдағы анықтамалығында көрсетілген. Сіз Итератор мазмұнындағы циклді орындап, файл аттарын басып шығара аласыз:
8-сурет
Мұнда os.scandir () ол context manager протоколын қолдайды. Контекстік менеджерді пайдалану итераторды жабады және Итератор таусылғаннан кейін алынған ресурстарды автоматты түрде босатады. Нәтиже my_directoryos-да көрген сияқты бірдей түрде файл аттарын басып шығару болып табылады.listdi () мысал:
9-сурет
Каталогтар тізімін алудың тағы бір жолы-pathlibмодельді пайдалану:
10-сурет
Қайтарылатын объектілер path-ті операциялық жүйеге байланысты Windowspathобъектімен немесе PosixPathили.
pathlib.Path () нысандары бар .iterdir () каталогта барлық файлдар мен қалталардың итераторын жасау әдісі. Көмегімен алынған әрбір жазба .iterdir () файлдың аты және файл атрибуттары сияқты файл немесе каталог туралы ақпаратты қамтиды. pathlibvpervые Python 3.4-те ұсынылған және файлдық жүйе үшін объектілі-бағытталған интерфейсті ұсынатын Python-ға тамаша қосымша болып табылады.
Жоғарыда келтірілген мысалда сіз pathlib шақырасыз.Path () және оған path аргументін беріңіз. Бұдан әрі шақыру жүріп жатыр.iterdir () my_directory барлық файлдар мен каталогтар тізімін алу үшін.
pathlib қарапайым, объектілі-бағытталған жолдармен жалпы операциялардың көпшілігі бар сыныптар жиынтығын ұсынады. Pathliba пайдалану оѕВ функцияларын пайдалану сияқты тиімді болмаса, көп болып табылады. Pathlibover os пайдаланудың тағы бір артықшылығы, бұл файл жүйесінің жолдарын айла-шарғы жасау үшін қажет импорт санын азайтады. Қосымша ақпарат алу үшін Python 3's pathlib Module: Taming the File System .
Жоғары кодты орындау келесі нәтижелерге әкеледі:
11-сурет
Pathlib пайдалану.Path () немесе os.scandir () орнына os.listdir () бұл файл түрі мен файл атрибуты туралы ақпарат талап етілетін кодпен жұмыс істесе, әсіресе каталогтар тізімін алудың қолайлы тәсілі болып табылады. pathlib.Path () osandshutil табылған файлдар мен жолдарды өңдеу функционалдық мүмкіндіктерінің көп бөлігін ұсынады, және оның әдістері осы модульдер табылған кейбір қарағанда тиімді. Біз жақын арада файл қасиеттерін алуға қалай талқылаймыз.
Міне, тағы да функция каталогы:
Сипаттама Функциясы
os.listdir ()
каталогтағы барлық файлдар мен қалталар тізімін қайтарады
os.scandir ()
file атрибуты туралы ақпаратты қоса алғанда, каталогтағы барлық нысандардың итераторын қайтарады
pathlib.Path.iterdir ()
file атрибуты туралы ақпаратты қоса алғанда, каталогтағы барлық нысандардың итераторын қайтарады
2.3 Каталогта барлық файлдарды аудару
Бұл бөлім os арқылы каталогтағы файлдар атауларын басып шығару жолын көрсетеді.listdir(), os.scandir (), және pathlib.Path(). Каталогтарды және тек тізімнің файлдарын кодтау үшін, көмекшісімен құрылған каталогтар тізімінен.listdir(), қолданыңызѕ.path:
12-сурет
Мұнда os шақыру.listdir () көрсетілген жолда тізімді қайтарады, содан кейін бұл тізім os сүзгілейді.path.isfile () тек каталогтар емес, файлдарды басып шығару үшін. Бұл келесі нәтижелерге әкеледі:
13-сурет
Каталогтағы файлдарды тізімдеу оңай жолы-os пайдалану.scandir () ipatlib.Path():
14-сурет
Os пайдалану.scandir () таза көрінеді және көмекші қарағанда түсіну оңай қандай артықшылығы бар.listdir (), бірақ бұл бір код жолы ұзағырақ. Егер нысан файл болса, Scandiriteratorвозвозвозвратахtrue әр элементке entry.is_file()шақыру. Каталогтағы барлық файлдардың атауларын басып шығару келесі шығыс деректерін береді:
15-сурет
Міне, каталогтағы файлдарды қалай көрсету керекpathlib.Path():
16-сурет
Міне, сіз қоңырау шаласыз .is_file () әрбір жазба бойынша .iterdir(). Шығарылған шығу бірдей:
17-сурет
Жоғарыда келтірілген кодты генератордың бір өрнегіне forциклді және if операторды біріктірген жағдайда, неғұрлым қысылған етуге болады. Дэн Бадер генераторлық көріністер мен пікірлердің тізімдері туралы тамаша мақала бар.
Өзгертілген нұсқа келесідей:
18-сурет
Бұл алдыңғы мысалмен бірдей нәтиже береді. Бұл бөлім os арқылы файлдарды немесе каталогтарды сүзу екенін көрсетті.scandir () және pathlib.Path () интуитивті сезінеді және os қарағанда таза көрінеді.listdir () os үйлесімінде.maths.
2.4 Аудару
Файлдардың орнына каталогтарды тізімдеу үшін келесі әдістердің бірін пайдаланыңыз. Мұнда os пайдалану әдісі.listdir () иоѕ.path():
19-сурет
Файл жүйесінің жолдарын манипуляциялау, осылайша, сіз бірнеше қоңырау бар кезде тез қатты болуы мүмкін.path.join(). Бұл бағдарламаны менің компьютерімде іске қосу келесі нәтижелерге әкеледі:
Бұл қалай пайдалану керек.scandir():
21-сурет
Файл тізімімен мысал ретінде, мұнда .is_dir()os қайтарылған әрбір жазбаны шақырасыз.scandir () пайдаланушы . Егер жазба каталог болса,. is_dir()қайтару, және каталог аты басып шығарылады. Шығу жоғары сияқты:
22-сурет
Бұл қалай пайдалану pathlib.Path():
23-сурет
Шақыру. is_dir () basepathiterator жазбасының файл немесе каталогы екенін тексереді. Егер жазба каталог болса, оның аты экранға шығады және алынған нәтиже алдыңғы мысалдағыдай болады:
24-сурет
3. Файл Атрибуттарын Алу
Python файл өлшемі және өзгерту уақыты сияқты файл атрибуттарын шығаруды жеңілдетеді. Бұл os арқылы жасалады.stat(),os.scandir (), немесе pathlib.Path().
os.scandir () және pathlib.Path () тіркесімде файл атрибуттары бар каталогтар тізімін алу. Бұл os пайдалану қарағанда әлеуетті неғұрлым тиімді болуы мүмкін.listdir () файлдарды аудару және әрбір файл үшін файл атрибуттарының ақпаратын алу үшін.
Төменде келтірілген мысалдаmy_directoryфайлдарын соңғы өзгерту уақытын қалай алуға болады. Шығу секундта:
25-сурет
os.scandir () Scandiriteratorо нысанды қайтарады. Scandiriterator объектідегі әрбір жазба бар .stat () ол көрсететін файл немесе каталог туралы ақпаратты алатын әдіс. .stat () файл өлшемі және соңғы өзгерту уақыты сияқты мәліметтерді береді. Жоғарыда келтірілген мысалда код файл мазмұнының соңғы өзгеруінің уақыты болып табылатын st_mtimeатрибут шығарады.
Pathlib модель сол нәтижелер беретін файл туралы ақпарат алу үшін тиісті әдістербар:
26-сурет
Жоғарыда келтірілген мысалда код қайтарылатын нысан бойынша циклді орындайды .iterdir () нысан, және файл атрибуттарын пайдаланып шығарады .каталогтар тізіміндегі әрбір файл үшін stat()қоңырау. st_mtimeatribut дәуір басталған сәттен бастап секундтарды білдіретін өзгермелі үтірмен мәнді қайтарады . Көрсету үшін st_mtime қайтарылатын мәндерді түрлендіру үшін datetimeобъектіге секундты түрлендіру үшін көмекші функцияны жазуға болады:
27-сурет
Бұл алдымен my_directory және олардың атрибуттары файлдарының тізімін алуға, содан кейін convert_date()әрбір файлдың соңғы өзгертілген уақытын адамның ыңғайлы формасында түрлендіру үшін шақыруға мүмкіндік береді. convert_date () пайдаланады .strftime () уақытты секундқа түрлендіру үшін.
Берілген аргументтер .strftime () келесі:
%d: ай күні
%b: ай, қысқартылған түрде
% Y: Шығарылған жылы
Бұл директивалар бірге келесідей нәтиже береді:
28-сурет
Күн мен уақытты жолға айналдыру үшін Синтаксис өте шатасуы мүмкін. Бұл туралы көбірек білу үшін осы мәселе бойынша ресми құжаттамамен танысыңыз. Есте сақтау оңай тағы бір ыңғайлы сілтеме-бұл http:strftime.org .
4. Каталогтар Құру
Ерте ме, кеш пе, сіз жазатын бағдарламалар оларға деректерді сақтау үшін каталогтар жасау керек. оѕи pathlib каталогтар жасау үшін функцияларды қосу. Біз оларды қарастырамыз:
Сипаттама
Функциясы
os.mkdir ()
бір ішкі салық жасайды
pathlib.Path.mkdir ()
бір немесе бірнешкаталогта жасайды
os.makedirs ()
аралық каталогтарды қоса алғанда, бірнеше каталогтар жасайды
4.1 Бірыңғай каталог жасау
Бір каталогты жасау үшін, toos параметрі ретінде каталогқа жол беріңіз.mkdir():
29-сурет
Егер каталог бар болса, os.mkdir () FileExistsError шақырады. Сонымен қатар, сіз pathlib көмекшісімен каталог жасай аласыз:
30-сурет
Егер жол бар болса, mkdir () онда aFileExistsError:
31-сурет
Мұндай қателерді болдырмау үшін, ол болған кезде қатені ұстаңыз және бұл туралы өз пайдаланушысына хабарлаңыз:
32-сурет
Сонымен қатар, сіз Exist_ok=Тгиеаргумент в. mkdir беру арқылы Fileexistserroreg елемеуге болады.():
33-сурет
Егер каталог бар болса, бұл қате болмайды.
4.2 Бірнеше Каталогтар Жасау
os.makedirs () os сияқты.mkdir(). Олардың арасындағы айырмашылық-олар тек os ғана емес.makedirs () жасау жеке каталогтар, сондай-ақ ағаш каталогтар құру үшін пайдаланылады. Басқаша айтқанда, ол толық жол бар екеніне кепілдік беру үшін кез келген қажетті аралық қалталарды жасай алады.
os.makedirs () бұл mkdir-рв Баш жүгіру сияқты. Мысалы, 20181005 типті каталогтар тобын құру үшін , Сіз істеу керек барлық нәрсе, бұл келесі:
Бұл 2018, 10 және 05 қалталары бар ішкі каталог құрылымын жасайды:
34-сурет
.makedirs () әдепкі рұқсаттары бар каталогтар жасайды. Егер әр түрлі қоңырау рұқсаттары бар каталогтар жасау қажет болса .makedirs () және сіз каталогтар құрылған қалайтын режимде беру:
35-сурет
Бұл 201810 05каталогтардың құрылымын жасайды және топтың иесі мен пайдаланушыларына оқуға, жазуға және орындауға рұқсат береді. Әдепкі Режим 0о777 болып табылады және бар ата-аналық каталогтар файлының рұқсатының биттері өзгертілмейді. Файлдарға кіру рұқсаттары және осы режимді қолдану тәсілдері туралы қосымша ақпарат алу үшін құжаттардан қараңыз.
Дұрыс рұқсаттарды қолдануды растау үшін treeд іске қосу:
36-сурет
Бұл ретте ағымдағы каталогтың каталогтар ағашы шығарылады. tree каталогтар мазмұнының тізімін ағаш тәрізді пішімде шығару үшін пайдаланылады. Аргументтерді жібергенде-ри-ів каталогтардың аттары және олардың тік тізімде файлдарға кіруге рұқсат беру туралы ақпараты көрсетіледі. - файлға қол жеткізу құқығын қайта басып шығарады және-іееѕ тік тізімді шегініс сызықтарынсыз құрастыруға рұқсат береді.
Сіз көре аласыз, барлық каталогтар бар 770. Каталогтарды құрудың балама жолы-пайдалану.mkdir () изpathlib.Path:
37-сурет
Өту parents=Тгиек Path.mkdir () оны жасау 05 каталогы жол беруге қажетті кез келген ата-аналық каталогтар.
Әдепкі, os.makedirs () және Path.mkdir () егер мақсатты каталог бар болса, шақыру. Бұл мінез-құлық (Python 3.2 бастап) exist_ok=Тгиев арқылы әр функцияны шақырғанда негізгі дәлел ретінде анықталуы мүмкін.
Жоғары кодты іске қосу төменде келтірілген каталогтар құрылымын бір рет жасайды:
38-сурет
Мен бір немесе ішкі каталогтар жасау үшін бірдей функцияны пайдалана аламын, өйткені каталогтар жасау pathlibпри пайдалану қалаймын.
5. Файл Атының Үлгіге Сәйкестігі
Каталогтағы файлдар тізімін жоғарыда әдістердің бірі арқылы алғаннан кейін, сіз белгілі бір үлгіге сәйкес келетін файлдарды таба аласыз.
Бұл сізге қолжетімді әдістер мен функциялар:
endswith () және startswith () жол әдістері
fnmatch.fnmatch()
glob.glob()
pathlib.Path.glob()
Олардың әрқайсысы төменде талқыланады. Бұл бөлімдегі мысалдар келесі құрылым деп аталатын және бар каталогыsome_directory үшін орындалады:
39-сурет
Егер сіз Bash қабығын пайдалану арқылы жүрсеңіз, келесі пәрмендерді пайдалана отырып, жоғарыда көрсетілген каталог құрылымын жасай аласыз:
40-сурет
Бұл some_directoryкаталог жасау, оны өзгерту, содан кейін жасауsub_dir. Келесі жол file1 құрады.руи file2.pyinsub_dir, ал соңғы жол кеңейту арқылы барлық қалған файлдарды жасайды.
5.1 Жол Әдістерін Қолдану
Python жолды өзгерту және манипуляциялау үшін бірнеше кіріктірілген әдістері бар . Осы әдістердің екі .startswith () а .endswith (), сондай-ақ, файл атауларында үлгілер іздегенде пайдалы. Ол үшін алдымен каталогтар тізімін алып, оны қайталаңыз:
41-сурет
Жоғарыда келтірілген код барлық файлдарsome_directory табады, оларды қайталайды және пайдаланады .endswith () басып шығару үшін файл атаулары кеңейту.txtфайл. Бұл бағдарламаны менің компьютерімде іске қосу келесі нәтижелерге әкеледі:
42-сурет
5.2 Fnmatch көмегімен қарапайым файл Үлгісі
Жол әдістері салыстыру мүмкіндіктерімен шектелген. fnmatch үлгімен салыстыру үшін озық функциялар мен әдістерді біледі. Біз қараймызfnmatch.fnmatch (), *және сияқты орнату белгілерін пайдалануды қолдайтын функция ?файл аттарын салыстыру үшін. Мысалы, бәрін табу үшін .көмекімен каталогта txtфайлдарfnmatch, сіз келесі еді:
43-сурет
Бұл some_directoryi пайдаланатын файлдар тізімінің үстінде қайталанады .fnmatch () бар файлдар үшін орналастыру белгілерін іздеу үшін .TXT кеңейтуі.
5.3 Неғұрлым Озық Салыстыру Үлгісі
Мысалы, Сіз табу керек .белгілі бір критерийлерге сәйкес келетін txtфайлдар. Мысалы, сіз іздеуге ғана мүдделі болуы мүмкін .txtфайлов қамтитын словоdata саны арасындағы жиынтығымен айдаһарлар болды және сөз backupв олардың файлдың атауы. Data_01_backupdata_02_backup немесе data_03_backup сияқты нәрсе.
Fnmatch арқылы.fnmatch (), сіз мұны осылай жасай аласыз:
44-сурет
Мұнда сіз тек data_*_backup файл аттарын басып шығарасыз.txtшаблону. Үлгідегі жұлдызша кез келген таңбаға сәйкес келеді, сондықтан осы қолданбаны іске қосқан кезде dataи деген сөзден басталатын Барлық мәтіндік файлдарbackup деп аяқталатын болады.TXT, сіз төменде шығыс деректерді көре аласыз:
45-сурет
5.4 Glob көмегімен файл атының үлгісін салыстыру
Үлгіні салыстыру үшін тағы бір пайдалы модуль-glob.
.glob () globmodulда fnmatch сияқты жұмыс істейді.fnmatch (), бірақ fnmatch айырмашылығы.fnmatch () бұл нүктеден басталатын файлдарды өңдейді (.), арнайы ретінде.
UNIX және онымен байланысты жүйелер ат үлгілерін, мысалы, орнату белгілері арқылы ауыстырады ма ?және * файлдар тізіміне. Бұл жаһандану деп аталады.
Мысалы, MV *.Py python_files мәтін енгізу UNIX қабықшасында (mv) барлық файлдарды с жылжытады .ағымдағы каталогтан python_files каталогына кеңейту. * Символ - "таңбалардың кез келген санын" және *білдіреді.Глобус үлгісі басқарылады. Бұл қабықшаның мүмкіндігі Windows операциялық жүйесінде қол жетімді емес. globmodul бұл мүмкіндікті Python бағдарламасына қосады, бұл Windows бағдарламалары осы мүмкіндікті пайдалануға мүмкіндік береді.
Мұнда барлық іздеу globdle пайдалану үлгісі .ағымдағы каталогта Python руисходных файлдар ( ) :
46-сурет
glob.glob ('*. py') бар барлық файлдарды іздейді.ағымдағы каталогта кеңейту және оларды тізім түрінде қайтарады. globtacже үлгілерге сәйкес келетін қабық стиліндегі орналасу белгілерінің үлгілерін қолдайды:
47-сурет
Бұл барлық мәтінді табады .файл атауында сандар бар txtфайлдар ( ):
48-сурет
glob ол оңай іздеуге файлдар рекурсивті, сондай-ақ:
49-сурет
Бұл мысал glob қолданылады.iglob () іздеу үшін .ағымдағы каталогта және ішкі каталогта руфайлдар. Беріліс recursive=Тгиев үшін дәлел ретінде .iglob () оны іздейді .ағымдағы каталогтағы және кез келген каталогтағы руфайлдар. Glob арасындағы айырмашылық.iglob () және glob.glob () бұл .iglob () тізімнің орнына итераторды қайтарады.
Жоғарыда бағдарламаны іске қосу келесідей:
50-сурет
pathlib икемді файлдар тізімін жасау үшін ұқсас әдістерді қамтиды. Төменде келтірілген мысалда қалай пайдалануға болады.Path.glob () әріптен басталатын файлдар түрлерінің тізімі:
51-сурет
P.glob('*.p*') РВ әрпінен басталатын ағымдағы каталогтағы барлық файлдарды көрсететін генератор объектісін қайтарады.
Path.glob () бұл os сияқты.glob () жоғарыда талқыланған нәрсе. Сіз көре аласыз, pathlibсочетает көптеген үздік функцийоѕоѕ.path , және globmoduly бір модуль, ол пайдалануға қуаныш етеді.
Қорытынды үшін, мұнда біз осы бөлімде қаралған функциялар кестесі:
Сипаттама
Функциясы
startswith ()
жолдың көрсетілген үлгіден басталатынын тексереді және Тгиеили False қайтарады
endswith ()
жол белгіленген үлгімен аяқталатынын тексереді және белгіні қайтарады немесе False
fnmatch.fnmatch (filename, pattern
Файл атауы үлгіге сәйкес келе ме және false-ді қайтарады
glob.glob ()
үлгіге сәйкес келетін файлдар атауларының тізімін қайтарады
pathlib.Path.glob ()
жол аттарында үлгілерді тауып, генераторды қайтарады
6. Каталогтарды аралау және файлдарды өңдеу
Бағдарламалаудың жалпы міндеті-ағаш каталогтардың жүру және ағаш файлдарын өңдеу. Python os функциясы ретінде қарастырайық.walk () бұл үшін пайдаланылуы мүмкін. os.walk () ағашты айналып өту арқылы немесе жоғарыдан төмен немесе төменнен жоғары ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz