Sunteți pe pagina 1din 25

Cap.

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
Introducere - continuare

- Module standard: https://


docs.python.org/3.5/py-modindex.html
- Module non standard: https://pypi.python.org/90k +

- print(nume_modul) returneaza directorul unde este


stocat acest modul. Modulul trebuie sa fie importat deja;

- Pentru instalare, se intra in linie de comanda, in


directorul unde se afla executabilul, si se scrie
instructiunea:

python setup.py install https://


docs.python.org/3.5/install/
Copyright - InfoAcademy - 2016 3
Crearea modulelor in Python

- Vom crea un fisier este numit NumeModul.py. Fisierul


va fi salvat/copiat in subdirectorul Lib din directorul
unde este instalat Python (Python3x);

- Fisierul va contine toate instructiunile Python necesare;

- Ultima instructiune din fisier va fi:


if __name__ == "__main__":
print ("Este un modul. Se importa, nu se
executa)
Aceasta instructiune testeaza daca doriti sa rulati direct
modulul.
Copyright - InfoAcademy - 2016 4
Apelarea modulelor in Python

- Apelarea modulului se face print import astfel:

- import nume_modul [ as alias ]


- apelare: nume_modul.nume_functie () sau
alias.nume_functie

- from nume_modul import var1, var2 [ , ... , ... ] [(*)]


- Apelare: nume_functie()

- from nume_modul import class

- Putem importa mai multe module cu aceeasi instructiune


import (,);
Copyright - InfoAcademy - 2016 5
Crearea unui package in Python

- O colectie de module se numeste package;

- Pentru a crea un package :


1. Cream un director cu numele pachetului;
2. Punem modulele in in fisiere separate .py;
3. Cream un fisier __init__.py in director fisierul va fi
gol;

- Numele directorului trebuie sa contina litere mici;

- Directorul cuprinzand fisierele de mai sus se


muta/copiaza in /Python3x/Lib;
Copyright - InfoAcademy - 2016 6
Apelarea unui package in Python

- Apelarea package se face print import astfel:

- import pkg.modul # pkg = nume package


- Apelare: pkg.modul.functie()

- from pkg.modul import functie [(*)]


- Apelare: functie()

- from pkg.modul import functie as alias


- Apelare: alias()

Copyright - InfoAcademy - 2016 7


Modulul platform modul standard Exemplul 702

- platform.machine() returneaza arhitectura hardware


a computerului

- platform.system() returneaza tipul sistemului de


operare

- platform.win32_ver() - returneaza tipul de windows si


alte informatii

- platform.processor() tipul procesorului

- platform.node() numele dispozitivului in retea


Copyright - InfoAcademy - 2016 8
Modulul sys modul standard Exemplul 703

- sys.argv returneaza o lista cu argumente (primul este


numele programului rulat;

- sys.version returneaza versiunea de Python instalata;

- sys.platform (win32, mac, posix- linux, linux2 -


android);

- sys.executable calea catre executabilul python

- sys.path caile unde cauta module

- sys.path.append(cale_noua) adaugam o cale noua


Copyright - InfoAcademy - 2016 9
Modulul os modul standard Exemplul 704

- os.getcwd() # directorul de unde ruleaza


programul (IDE)

- os.system('ping 8.8.8.8') # comand prompt (terminal)

- os.chdir('C:\WT\paul') # schimba directorul

- os.listdir('c:\python35\lib\pkg') # lista cu fisierele din


director

- os.linesep # returneaza separatorul de linie

- os.sep # returneaza separatorul de directoare

- os.remove('c:\python35\lib\pkg\patratel.py')
Copyright - InfoAcademy - 2016
# sterge
10
Modulul random modul standard

random.choice('Astazi e ziua ta') # alege un caracter


aleator

random.randrange(0, 1000, 5) # numar aleator intre


[0-1000), pass 5

random.random() # numar aleator intre


[0.0-1.0)

random.randrange(100) # numar aleator intre


[1-100)

Modulul random nu poate fi utilizat in scopuri de securitate.


Copyright - InfoAcademy - 2016 11
tempfile.mktemp()

Modulul tempfile modul standard

- Cearea si manipularea de fisier temporare;

- tempfile.mktemp() creaza un fisier temporar

- tempfile.gettempdir() directorul unde se afle fisierul


temporar

- tempfile.mkdtemp() creaza un director temporar

- Fisierele astfel create pot fi utilizate ca oricare alte fisiere


(citire, scriere, etc);
Exemplul 706
Copyright - InfoAcademy - 2016 12
Modulul pickle modul standard

- pickle transforma diferite obiecte in byte stream si


invers;

- In Python se numeste Pickling procesul de conversie a


datelor complexe si de mai multe tipuri cu scopul de a fi
stocate in fisiere. Termenul similar este serialization,
comun si in alte limbaje de programare;

Copyright - InfoAcademy - 2016 13


Modulul pickle continuare

- Pentru a scrie o variabila vom utiliza:

pickle.dump( variabila, nume fisier),

- Pentru a citi o variabila vom utiliza:


pickle.load(nume fisier)

- Tipuri de date putem utiliza cu pickle: string, tuple, list,


set, dict, functii definite in module, functii predefinite,
clase, instante ale claselor

Copyright - InfoAcademy - 2016


Exemplul 707
14
Modulul getpass prompt user si parola

- import getpass

- usr = getpass.getuser() # returneaza userul logat

- print (usr)

- passw = getpass.getpass("Introdu parola pentru userul


"+usr+":")

- print (passw)

Exemplul 708
Copyright - InfoAcademy - 2016 15
Modulul math

- math.pi - valoare pi

- math.e - valoare e

- math.sqrt(49) - radacina patrata

- math.pow(2, 10) - ridicarea la putere

- for i in dir(math): - returneaza functiile disponibile


- print (i)

Exemplul 709
Copyright - InfoAcademy - 2016 16
Modulul time

- Intervalele de timp sunt numere ce sunt flotante


(curgatoare) n secunde. Anumite instante de timp sunt
exprimate n secunde de la 12:00am ,1 Ianuarie 1970
(numit si epoch time);

- Multe functii ale modulului Python time sunt reprezentate


de un tuplu de 9 numere. Poarta numele de struct_time

- Obtinem struct_time cu: time.localtime()

- time.localtime() # returneaza
struct_time
Copyright - InfoAcademy - 2016 17
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- tm_sec
seconds)
6 Ziua 0 to 6 (0 is Monday) tm_wday
saptamanii
7 Ziua anului 1 to 366 (Julian day) tm_yday
.
8 Ora de Vara -1, 0, 1determina DST tm_isdst
Copyright - InfoAcademy - 2016 18
Modulul time - continuare

- t = time.asctime(time.localtime(time.time())) #
returneaza data si ora

- print t # printeaza data si


ora din var. t

- time.asctime(time.localtime()) # printeaza data


si ora ca string

- print time.localtime(time.time()) # returneaza


struct_time
Copyright - InfoAcademy - 2016 19
Modulul time - continuare
Denumi
Semnificatie
re
%a Locales abbreviated weekday name.
%A Locales full weekday name.q
%b Locales abbreviated month name.
%B Locales full month name.
%c Locales appropriate date and time representation.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locales equivalent of either AM or PM.
Modulul time - continuare
Denumi
Semnificatie
re
%S Second as a decimal number [00,61].
Week number of the year (Sunday as the first day of the
week) as a decimal number [00,53]. All days in a new
%U
year preceding the first Sunday are considered to be in
week 0.
%w Weekday as a decimal number [0(Sunday),6].
Week number of the year (Monday as the first day of the
week) as a decimal number [00,53]. All days in a new
%W
year preceding the first Monday are considered to be in
week 0.
%x Locales appropriate date representation.
%X Locales appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
Modulul calendar

- luna = calendar.month ( 2016, 07 )


- print luna # calendarul desfasurat

- ziua = calendar.weekday ( 2016, 7, 15 )


- print ziua # numarul zilei (0 - 6)

- calendar.January # returneaza 1

- calendar.isleap ( 2400 ) # testeaza an bisect

- calendar.leapdays ( 2000, 2100 ) # numarul de zile


de 29 Feb in perioada specificata

Copyright - InfoAcademy - 2016 22


Modulul calendar

- calendar.monthcalendar ( 2016, 7 ) # liste cu zilele


grupate pe saptamani. Incepe duminica

- calendar.day_name[4] # numele zilei

- calendar.month_name[5] # numele lunii

- calendar.month_abbr[7] # numele abreviat


al lunii

- calendar.day_abbr[5] # numele abreviat al


zilei
Exemplul 711
Copyright - InfoAcademy - 2016 23
Modulul zipfile

- import zipfile # import modul

- Nume_obj = zipfile.ZipFile("cale/nume_fisier.zip", "r") #


obiect cu arhiva

- Putem lista fisierelor care compun arhiva si informatii


despre fisierele care compun arhiva;
Exemplul 712
- Putem citi fisiere arhivate si putem scrie in fisiere
arhivate;

- Putem extrage toate fisierele sau doar cel specificat;


Copyright - InfoAcademy - 2016 24
Modulul datetime

- Putem extrage momentul de timp current;

- Putem extrage fiecare component din momentul de timp


current;

- Putem formata data si/sau ora in diferite formate, diferite


de cel standard Python;

- Putem transforma un string, care are in componenta


elementele datetime in format acceptat de Python;

Copyright - InfoAcademy - 2016 25