10. Համառոտ շրջայց Ստանդարտ գրադարանում/ Մաս I

10.1: Օպերացիոն համակարգի ինտերֆեյս

The os մոդուլը տալիս է տասնյակ գործառույթներ օպերացիոն համակարգի հետ փոխազդելու համար.

>>>

Համոզվեք, որ օգտագործեք import os ոճը փոխարեն from os import *. Սա կպահպանվի os.open() ներկառուցվածը ստվերելուց open() ֆունկցիա, որը շատ տարբեր է գործում:

Ներկառուցվածը dir() և help() Ֆունկցիաները օգտակար են որպես ինտերակտիվ օժանդակ միջոցներ մեծ մոդուլների հետ աշխատելու համար, ինչպիսիք են os:

>>>

Ֆայլերի և գրացուցակի կառավարման ամենօրյա առաջադրանքների համար՝ shutil մոդուլն ապահովում է ավելի բարձր մակարդակի ինտերֆեյս, որն ավելի հեշտ է օգտագործել.

>>>

10.2: Ֆայլի Wildcards

The glob մոդուլը տրամադրում է ֆայլերի ցուցակներ գրացուցակում wildcard-ի որոնումներից ֆայլերի ցուցակ ստեղծելու գործառույթ.

>>>

10.3: Հրամանի տողի փաստարկներ

Ընդհանուր օգտակար սկրիպտները հաճախ կարիք ունեն մշակելու հրամանի տողի փաստարկները: Այս փաստարկները պահվում են sys մոդուլի արգվ հատկանիշը որպես ցուցակ: Օրինակ՝ գործարկման արդյունքում ստացվում է հետևյալ արդյունքը python demo.py one two three հրամանի տողում.

>>>

The argparse մոդուլը տրամադրում է ավելի բարդ մեխանիզմ հրամանի տողի փաստարկները մշակելու համար: Հետևյալ սկրիպտը հանում է մեկ կամ մի քանի ֆայլի անուններ և ցուցադրվող տողերի կամայական քանակություն.

Երբ գործարկվում է հրամանի տողում python top.py --lines=5 alpha.txt beta.txt, սցենարը սահմանվում է args.lines դեպի 5 և args.filenames դեպի ['alpha.txt', 'beta.txt'].

10.4: Սխալի արդյունքի վերահղում և ծրագրի դադարեցում

The sys մոդուլն ունի նաև ատրիբուտներ stdinstdout, եւ stderr. Վերջինս օգտակար է նախազգուշացումներ և սխալ հաղորդագրություններ արձակելու համար, որպեսզի դրանք տեսանելի լինեն նույնիսկ այն ժամանակ, երբ stdout վերահղված է.

>>>

Սցենարը դադարեցնելու ամենաուղիղ ճանապարհը օգտագործելն է sys.exit().

10.5: Լարի նախշերի համապատասխանեցում

The re մոդուլն ապահովում է կանոնավոր արտահայտչական գործիքներ լարերի առաջադեմ մշակման համար: Բարդ համընկնման և մանիպուլյացիայի համար կանոնավոր արտահայտություններն առաջարկում են հակիրճ, օպտիմիզացված լուծումներ.

>>>

Երբ անհրաժեշտ են միայն պարզ հնարավորություններ, նախընտրելի են լարային մեթոդները, քանի որ դրանք ավելի հեշտ են կարդալ և կարգաբերել.

>>>

10.6: Մաթեմատիկա

The math մոդուլը հնարավորություն է տալիս մուտք գործել C գրադարանի հիմքում ընկած գործառույթները լողացող կետի մաթեմատիկայի համար.

>>>

The random մոդուլն ապահովում է պատահական ընտրություն կատարելու գործիքներ.

>>>

The statistics մոդուլը հաշվարկում է թվային տվյալների հիմնական վիճակագրական հատկությունները (միջին, միջին, շեղում և այլն).

>>>

SciPy նախագիծըhttps://scipy.org> ունի բազմաթիվ այլ մոդուլներ թվային հաշվարկների համար:

10.7: Ինտերնետ հասանելիության

Կան մի շարք մոդուլներ ինտերնետ մուտք գործելու և ինտերնետային արձանագրությունների մշակման համար։ Ամենապարզներից երկուսն են urllib.request URL-ներից տվյալներ ստանալու համար և smtplib փոստ ուղարկելու համար.

>>>

(Նկատի ունեցեք, որ երկրորդ օրինակին անհրաժեշտ է փոստասերվեր, որն աշխատում է localhost-ում):

10.8: Ամսաթվերը եւ ժամանակը

The datetime մոդուլը տրամադրում է դասեր՝ ամսաթվերը և ժամերը ինչպես պարզ, այնպես էլ բարդ եղանակներով կառավարելու համար: Թեև աջակցվում է ամսաթվի և ժամի թվաբանությունը, իրականացման կենտրոնացումը կենտրոնացած է արդյունավետ անդամների արդյունահանման վրա՝ ելքային ձևաչափման և մանիպուլյացիայի համար: Մոդուլը նաև աջակցում է այն օբյեկտներին, որոնք տեղյակ են ժամային գոտում:

>>>

10.9: Տվյալների սեղմում

Տվյալների արխիվացման և սեղմման ընդհանուր ձևաչափերն ուղղակիորեն աջակցվում են մոդուլներով, ներառյալ՝ zlibgzipbz2lzmazipfile և tarfile.

>>>

10.10: Կատարողականության չափում

Python-ի որոշ օգտատերեր խորը հետաքրքրություն են զարգացնում նույն խնդրի նկատմամբ տարբեր մոտեցումների հարաբերական կատարողականությունն իմանալու նկատմամբ: Python-ը տրամադրում է չափման գործիք, որն անմիջապես պատասխանում է այդ հարցերին:

Օրինակ, կարող է գայթակղիչ լինել օգտագործել բազմակի փաթեթավորման և ապափաթեթավորման գործառույթը փաստարկների փոխանակման ավանդական մոտեցման փոխարեն: Այն timeit մոդուլը արագորեն ցույց է տալիս կատարողականի համեստ առավելությունը.

>>>

Ի տարբերություն timeit-ի հատիկավորության նուրբ մակարդակը, profile և pstats մոդուլները գործիքներ են տրամադրում կոդի ավելի մեծ բլոկներում ժամանակի կարևոր հատվածները հայտնաբերելու համար:

10.11: Որակի վերահսկում

Բարձրորակ ծրագրային ապահովման մշակման մոտեցումներից մեկը յուրաքանչյուր գործառույթի համար թեստեր գրելն է, քանի որ այն մշակվում է և այդ թեստերը հաճախակի գործարկելը մշակման գործընթացում:

The doctest մոդուլը գործիք է տրամադրում մոդուլը սկանավորելու և ծրագրի փաստաթղթային տողերում ներկառուցված թեստերը վավերացնելու համար: Փորձարկման կառուցումը նույնքան պարզ է, որքան սովորական զանգը կտրելը և կպցնելը դրա արդյունքների հետ միասին փաստաթղթային տողում: Սա բարելավում է փաստաթղթավորումը՝ օգտվողին տրամադրելով օրինակ, և դա թույլ է տալիս doctest մոդուլին համոզվել, որ կոդը հավատարիմ է մնում փաստաթղթերին.

The unittest մոդուլն այնքան էլ հեշտ չէ, որքան doctest մոդուլ, սակայն այն թույլ է տալիս թեստերի ավելի համապարփակ հավաքածու պահել առանձին ֆայլում.

10.12: Մարտկոցներ ներառված են

Python-ն ունի «մարտկոցներ ներառված» փիլիսոփայություն: Սա լավագույնս երևում է իր ավելի մեծ փաթեթների բարդ և հզոր հնարավորությունների միջոցով: Օրինակ:

  • The xmlrpc.client և xmlrpc.server մոդուլները հեռահար ընթացակարգային զանգերի իրականացումը դարձնում են գրեթե չնչին խնդիր: Չնայած մոդուլների անուններին, XML-ի անմիջական իմացություն կամ մշակում չի պահանջվում:
  • The email փաթեթը գրադարան է էլ. հաղորդագրությունների կառավարման համար, ներառյալ MIME և այլն RFC 2822- հաղորդագրությունների վրա հիմնված փաստաթղթեր: Ի տարբերություն smtplib և poplib որոնք իրականում ուղարկում և ստանում են հաղորդագրություններ, էլփոստի փաթեթն ունի ամբողջական գործիքակազմ՝ հաղորդագրության բարդ կառուցվածքները (ներառյալ հավելվածները) կառուցելու կամ վերծանելու և ինտերնետի կոդավորման և վերնագրի արձանագրությունների ներդրման համար:
  • The json փաթեթն ապահովում է ամուր աջակցություն տվյալների փոխանակման այս հանրաճանաչ ձևաչափի վերլուծության համար: Այն csv մոդուլն աջակցում է ստորակետերով բաժանված արժեքի ձևաչափով ֆայլերի ուղղակի ընթերցմանը և գրելուն, որոնք սովորաբար աջակցվում են տվյալների շտեմարանների և աղյուսակների կողմից: XML մշակումն աջակցվում է xml.etree.ElementTreexml.dom և xml.sax փաթեթներ. Այս մոդուլներն ու փաթեթները միասին զգալիորեն պարզեցնում են տվյալների փոխանակումը Python հավելվածների և այլ գործիքների միջև:
  • The sqlite3 մոդուլը փաթեթավորում է SQLite տվյալների բազայի գրադարանի համար, որն ապահովում է կայուն տվյալների բազա, որը կարելի է թարմացնել և մուտք գործել՝ օգտագործելով մի փոքր ոչ ստանդարտ SQL շարահյուսություն:
  • Միջազգայնացումը աջակցվում է մի շարք մոդուլներով, այդ թվում gettextlocaleԵւ codecs փաթեթ:
ArmenianEnglish