Standartinė biblioteka
Viena iš Python idėjų yra
Python comes with batteries included
Išvertus į žmonių kalbą -- su Python ateina turtinga standartinė biblioteka, leidžianti atlikti daug praktikoje naudingų veiksmų.
Trumpa naudingų modulių apžvalga, kad pajustumėte, ką galima rasti standartinėje bibliotekoje:
- sys
- Darbas su sistema: priėjimas prie komandų eilutės, klaidos kodo grąžinimas iš programos, Python versija, sąrašas katalogų, kuriuose bus ieškoma importuojamų modulių.
- operator
- Pythono operatoriai kaip funkcijos, funkcinio programavimo mėgėjams. Gerai derinasi su funkcija reduce.
- traceback
- Priėjimas prie programos steko, jei reikia gražaus klaidų pateikimo (pvz. formatavimo HTMLe) didesnėse sistemose.
- linecache
- Labai lengvas priėjimas prie failų eilučių („duok man šito failo 425 eilutę“), nesirūpinant efektyvumu (viskas kešuojama).
- pickle
- Bet kokių Python objektų išsaugojimas diske, išlaikant tarpusavio sąryšius.
- cPickle
- Tas pats, kas ir pickle, bet veikia greičiau, nes implementuota C kode.
- copy
- Gilus ir negilus objektų kopijavimas
- pprint
- Gražus objektų pavaizdavimas (pretty printing)
- __builtin__
- Visos vidinės funkcijos -- jų nereikia specialiai importuoti iš
__builtin__ modulio, bet __builtin__ modulis leidžia mums pasižiūrėti visą
vidinių funkcijų/objektų sąrašą, pvz., naudojant
import __builtin__ print dir(__builtin__)
- string
- Pasęnęs modulis darbui su simbolių eilutėmis -- dabar didžioji dalis string modulio funkcijų yra tiesiog stringų metodai. Geriau jo vengti.
- re
- Darbas su reguliariomis išraiškomis (regular expressions).
- struct
- Darbas su dvejetainėmis duomenų struktūromis -- gali praversti, jei rankomis konstruojate tinklo paketus ar dvejetainius duomenų failus.
- difflib
- Dviejų sekų palyginimas -- su šiuo moduliu galite nesunkiai pasigaminti paprastą Unixo diff analogą.
- StringIO
- Failo objektas, laikantis duomenis atmintyje ir leidžiantis pasiekti juos kaip simbolių eilutę. Labai praverčia unit testams.
- cStringIO
- Tas pats, kas ir StringIO, bet veikia greičiau, nes implementuota C kode. Skirtingai nuo StringIO, cStringIO nemoka dirbti su Unikodinėmis simbolių eilutėmis.
- textwrap
- Paprastas teksto "lankstymas".
- pydoc
- Tiek modulis, tiek programa, duodanti informacinius puslapius apie Pythono modulius, klases ar funkcijas. Informacija yra sukrapštoma iš dokumentacinių simbolių eilutčių (docstrings), tad pydoc'as veiks ir su jūsų pačių parašytais moduliais.
- doctest
- Karkasas dokumentaciniams testams.
- unittest
- Karkasas automatizuotiems kodo vienetų testams.
- math
- Įvairios matematinės funkcijos ir konstantos (sinusai, Pi ir t.t.).
- random
- Pseudoatsitiktinių skaičių generavimas.
- sets
- Aibės duomenų tipas.
- os
- Darbas su operacine sistema (procesų valdymas, aplinka, failų vardai ir t.t.). Atkreipkite dėmesį į modulį os.path -- jis labai naudingas programoms, veikiančioms tiek Unixe, tiek Windowsuose, tiek Mac OSe.
- datetime
- Duomenų tipai datai ir laikui bei operacijos su jais.
- time
- Senesnis modulis darbui su laiku -- vietoje padorių duomenų tipų turite sekundžių skaičių nuo 1970 sausio 1 dienos bei krūvą globalių funkcijų.
- curses
- Tekstinio režimo „grafinė“ vartotojo sąsaja.
- getopt
- Paprastas ir patogus komandų eilutės argumentų apdorojimas.
- tempfile
- Laikinų failų su atsitiktiniais vardais kūrimas. Praverčia unit testuose.
- glob
- Failų paieška pagal šablonus (pvz, a[1-9]*.txt).
- shutil
- Sudėtingesnės operacijos su failais (kopijavimas, rekursyvus katalogo trynimas ir pan.).
- locale
- Darbas su lokale -- vartotojo naudojama simbolių koduotė, laiko ir datos užrašymo būdas ir t.t.
- gettext
- Programų vartotojo sąsajos vertimas į kitas kalbas.
- logging
- Karkasas informaciniams pranešimams (logging).
- threading
- Darbas su gijomis.
- zipfile
- Darbas su ZIP archyvais.
- readline
- Komandų eilutė su istorija, tab-išplėtimu ir kitais saldžiais priedais Unix sistemose.
- csv
- Darbas su Comma Separated Value (CSV) failais.
- Elektroninio pašto pranešimų formavimas pagal visus Internetinius standartus (RFC 2822, MIME ir t.t.).