Cap.

7

Module in Python

Introducere

- Un modul este un un program care este conceput pentru
a fi reutilizat;

- Reutilizarea codului (operatie numita import de modul)
se realizeaza prin cuvantul cheie import;

- Clasele sau functiile modulului importat nu exista in cod
pana la import;

- Exista module standard, care sunt in librarii existente
inca de la instalarea Python si module non standard, care
necesita instalare.
Copyright - InfoAcademy - 2016 2

5/install/ Copyright .InfoAcademy .Module non standard: https://pypi. in directorul unde se afla executabilul.python. .org/90k + .org/3. se intra in linie de comanda.html .print(nume_modul) – returneaza directorul unde este stocat acest modul.Module standard: https:// docs.2016 3 . Introducere .py install https:// docs.5/py-modindex. Modulul trebuie sa fie importat deja. si se scrie instructiunea: python setup.continuare .python.python.org/3.Pentru instalare.

2016 4 . Fisierul va fi salvat/copiat in subdirectorul ‘Lib’ din directorul unde este instalat Python (Python3x). Copyright .InfoAcademy .Ultima instructiune din fisier va fi: if __name__ == "__main__": print ("Este un modul. Se importa.Vom crea un fisier este numit “NumeModul.py”. Crearea modulelor in Python . . .Fisierul va contine toate instructiunile Python necesare. nu se executa“) Aceasta instructiune testeaza daca doriti sa rulati direct modulul.

.Putem importa mai multe module cu aceeasi instructiune import (. .from nume_modul import class .Apelare: nume_functie() .nume_functie ..import nume_modul [ as alias ] .. var2 [ .).Apelarea modulului se face print import astfel: . Copyright .2016 5 .InfoAcademy .from nume_modul import var1.. ] [(*)] .nume_functie () sau alias..apelare: nume_modul. Apelarea modulelor in Python . .

Punem modulele in in fisiere separate . 3. Cream un director cu numele pachetului.py. Copyright . . 2.O colectie de module se numeste package.py in director – fisierul va fi gol.InfoAcademy . .Directorul cuprinzand fisierele de mai sus se muta/copiaza in /Python3x/Lib. . Cream un fisier __init__. Crearea unui package in Python .Pentru a crea un package : 1.2016 6 .Numele directorului trebuie sa contina litere mici.

InfoAcademy .modul import functie as alias .from pkg.modul.Apelare: pkg.2016 7 .from pkg.Apelare: functie() .modul import functie [(*)] .Apelare: alias() Copyright .import pkg.Apelarea package se face print import astfel: . Apelarea unui package in Python .modul # pkg = nume package .functie() .

platform.InfoAcademy .platform.platform.win32_ver() .system() – returneaza tipul sistemului de operare .returneaza tipul de windows si alte informatii .platform.2016 8 . Modulul platform – modul standard Exemplul 702 .platform.node() – numele dispozitivului in retea Copyright .processor() – tipul procesorului .machine() – returneaza arhitectura hardware a computerului .

linux. linux2 - android). mac. .platform – (win32. .InfoAcademy .version – returneaza versiunea de Python instalata. .path – caile unde cauta module .sys.2016 9 . Modulul sys – modul standard Exemplul 703 .sys.executable – calea catre executabilul python .sys.sys.sys.append(‘cale_noua’) – adaugam o cale noua Copyright .sys.path. posix.argv – returneaza o lista cu argumente (primul este numele programului rulat.

chdir('C:\WT\paul') # schimba directorul .2016 # sterge 10 . os. os.linesep # returneaza separatorul de linie .InfoAcademy .remove('c:\python35\lib\pkg\patratel.sep # returneaza separatorul de directoare .8.getcwd() # directorul de unde ruleaza programul (IDE) .py') Copyright . os. os.listdir('c:\python35\lib\pkg') # lista cu fisierele din director . os. Modulul os – modul standard Exemplul 704 .8.8') # comand prompt (terminal) .system('ping 8. os. os.

5) # numar aleator intre [0-1000).0) random.0-1.random() # numar aleator intre [0. pass 5 random. Modulul random – modul standard random. 1000.2016 11 .choice('Astazi e ziua ta') # alege un caracter aleator random.randrange(0.randrange(100) # numar aleator intre [1-100) Modulul random nu poate fi utilizat in scopuri de securitate. Copyright .InfoAcademy .

etc).Fisierele astfel create pot fi utilizate ca oricare alte fisiere (citire.mktemp() Modulul tempfile – modul standard .tempfile.gettempdir() – directorul unde se afle fisierul temporar .mktemp() – creaza un fisier temporar .Cearea si manipularea de fisier temporare.InfoAcademy .tempfile. tempfile. .2016 12 . scriere. Exemplul 706 Copyright .tempfile.mkdtemp() – creaza un director temporar .

Modulul pickle – modul standard . Termenul similar este serialization. . comun si in alte limbaje de programare.InfoAcademy .2016 13 . Copyright .In Python se numeste Pickling procesul de conversie a datelor complexe si de mai multe tipuri cu scopul de a fi stocate in fisiere.pickle transforma diferite obiecte in byte stream si invers.

Pentru a scrie o variabila vom utiliza: pickle. tuple.Tipuri de date putem utiliza cu pickle: string. instante ale claselor Copyright . set.load(nume fisier) . list.dump( variabila.InfoAcademy .2016 Exemplul 707 14 . nume fisier). dict. .Pentru a citi o variabila vom utiliza: pickle. functii predefinite. functii definite in module. clase. Modulul pickle – continuare .

print (passw) Exemplul 708 Copyright .passw = getpass.getpass("Introdu parola pentru userul "+usr+":") .InfoAcademy . Modulul getpass – prompt user si parola .usr = getpass.print (usr) .import getpass .2016 15 .getuser() # returneaza userul logat .

math.2016 16 .ridicarea la putere . print (i) Exemplul 709 Copyright .math.radacina patrata .pow(2.for i in dir(math): .pi . Modulul math .e .valoare pi .sqrt(49) . 10) .InfoAcademy .returneaza functiile disponibile .valoare e .math.math.

Intervalele de timp sunt numere ce sunt flotante (curgatoare) în secunde. Anumite instante de timp sunt exprimate în secunde de la 12:00am . .localtime() # returneaza struct_time Copyright .InfoAcademy .Obtinem struct_time cu: time.localtime() . Poarta numele de struct_time .1 Ianuarie 1970 (numit si epoch time).Multe functii ale modulului Python time sunt reprezentate de un tuplu de 9 numere.2016 17 .time. Modulul time .

InfoAcademy . tm_sec seconds) 6 Ziua 0 to 6 (0 is Monday) tm_wday saptamanii 7 Ziua anului 1 to 366 (Julian day) tm_yday . 0. struct_time Index Camp Valori Atribut 0 Anul 2008 tm_year 1 Luna 1 to 12 tm_mon 2 Ziua 1 to 31 tm_mday 3 Ora 0 to 23 tm_hour 4 Minutul 0 to 59 tm_min 5 Secunda 0 to 61 (60 sau 61 leap.2016 18 . 8 Ora de Vara -1. 1determina DST tm_isdst Copyright .

localtime(time.localtime(time.time.2016 19 .print t # printeaza data si ora din var.print time.InfoAcademy .localtime()) # printeaza data si ora ca string . t .time())) # returneaza data si ora .asctime(time.time()) # returneaza struct_time Copyright . Modulul time .asctime(time.t = time.continuare .

%j Day of the year as a decimal number [001. %p Locale’s equivalent of either AM or PM. %m Month as a decimal number [01. %I Hour (12-hour clock) as a decimal number [01. %c Locale’s appropriate date and time representation.31].12]. .23]. Modulul time .12]. %B Locale’s full month name. %H Hour (24-hour clock) as a decimal number [00.continuare Denumi Semnificatie re %a Locale’s abbreviated weekday name.59]. %A Locale’s full weekday name. %M Minute as a decimal number [00.366]. %d Day of the month as a decimal number [01.q %b Locale’s abbreviated month name.

%Y Year with century as a decimal number. %w Weekday as a decimal number [0(Sunday). %x Locale’s appropriate date representation.99].61]. All days in a new %U year preceding the first Sunday are considered to be in week 0. Week number of the year (Monday as the first day of the week) as a decimal number [00. Week number of the year (Sunday as the first day of the week) as a decimal number [00. .6]. Modulul time .continuare Denumi Semnificatie re %S Second as a decimal number [00. %y Year without century as a decimal number [00.53]. %X Locale’s appropriate time representation.53]. All days in a new %W year preceding the first Monday are considered to be in week 0.

calendar.leapdays ( 2000.print ziua # numarul zilei (0 .luna = calendar.2016 22 .6) .January # returneaza 1 .print luna # calendarul desfasurat .isleap ( 2400 ) # testeaza an bisect . Modulul calendar .calendar.month ( 2016. 07 ) . 7.ziua = calendar. 15 ) .InfoAcademy .calendar. 2100 ) # numarul de zile de 29 Feb in perioada specificata Copyright .weekday ( 2016.

monthcalendar ( 2016.2016 23 . 7 ) # liste cu zilele grupate pe saptamani.calendar.calendar. Modulul calendar .day_abbr[5] # numele abreviat al zilei Exemplul 711 Copyright .InfoAcademy .month_name[5] # numele lunii .calendar.day_name[4] # numele zilei .calendar.month_abbr[7] # numele abreviat al lunii . Incepe duminica .calendar.

Putem lista fisierelor care compun arhiva si informatii despre fisierele care compun arhiva.Putem extrage toate fisierele sau doar cel specificat.2016 24 .import zipfile # import modul . .zip".Putem citi fisiere arhivate si putem scrie in fisiere arhivate.InfoAcademy .ZipFile("cale/nume_fisier. Modulul zipfile . "r") # obiect cu arhiva . Exemplul 712 .Nume_obj = zipfile. Copyright .

.2016 25 . Modulul datetime . .Putem transforma un string.Putem extrage momentul de timp current.InfoAcademy . care are in componenta elementele datetime in format acceptat de Python. .Putem formata data si/sau ora in diferite formate. Copyright . diferite de cel standard Python.Putem extrage fiecare component din momentul de timp current.