Documente Academic
Documente Profesional
Documente Cultură
Tipuri de fișiere:
Text - conține date care au fost codificate în text folosind scheme ca ASCII sau Unicode.
Chiar dacă fișierele conțin numere, ele sunt stocate ca o serie de caractere. Drept rezultat,
fișierul poate fi deschis și văzut într-un editor de text precum Notepad sau Word
Binare - conțin date care sunt convertite în text
Metode de acces:
Secvenţial – înregistrările se parcurg secvenţial.
Direct – înregistrările pot fi accesate direct
Un fișier obiect (file object) este un obiect asociat cu un fișier specific și oferă o cale
programului de a lucra cu acel fișier. În program, o variabilă referă obiectul fișier. Acea variabilă
se îngrijește de toate operațiile făcute în fișier.
Modul de lucru:
unde
Implicit
Deschide fişierul pentru citire (read).
r
Fişierul va fi suprascris.
Fişierul trebuie să existe.
Deschide fişierul pentru citire în format binar.
rb Fişierul va fi suprascris.
Fişierul trebuie să existe.
r+ Deschide fişierul şi pentru scriere şi pentru citire (read/write)
Fişierul va fi suprascris.
Fişierul trebuie să existe.
Deschide fişierul şi pentru scriere şi pentru citire (read/write) în format binar
rb+ Fişierul va fi suprascris.
Fişierul trebuie să existe.
Deschide fişierul pentru scriere (write).
w Fişierul va fi suprascris.
Dacă fişierul nu există, îl va crea.
Deschide fişierul pentru scriere în format binar.
wb Fişierul va fi suprascris.
Dacă fişierul nu există, va fi creat.
Deschide fişierul pentru scriere şi citire (read/write) în format normal
w+ Fişierul va fi suprascris.
Dacă fişierul nu exisă, va fi creat.
Deschide fişierul pentru scriere şi citire (read/write) în format binar.
wb+ Fişierul va fi suprascris.
Dacă fişierul nu exisă, va fi creat.
Deschide fişierul pentru scriere (write) cu append la finalul acestuia.
a
Dacă fişierul nu există, îl va crea.
Deschide fişierul pentru scriere în format binar cu append la finalul acestuia.
ab
Dacă fişierul nu există, va fi creat.
Deschide fişierul pentru scriere şi citire (read/write) în format normal, cu append
a+ la finalul acestuia.
Dacă fişierul nu exisă, va fi creat.
Deschide fişierul pentru scriere şi citire (read/write) în format binar cu append la
ab+ finalul acestuia.
Dacă fişierul nu exisă, va fi creat.
x (Create) - creează fişierul, apare eroare dacă fişierul există.
Obs: dacă bufferul are o valoare diferită de 0 sau 1, atunci textul pe care vrem să îl scriem în
fişier, va fi mai întâi adăugat în acest buffer, iar abia atunci când dimensiunea textului depăşeşte
pe cea a bufferului, textul aflat în buffer va fi adăugat în fişier.
Exemplu:
Fișierul client.txt conține datele unui client și vrem să îl deschidem pentru a îl citi:
După ce declarația este executată, fișierul client.txt este deschis și variabila fisier_client va referi
un fișier obiect pe care îl putem folosi ca să citim date din fișier.
Închiderea unui fişier
Metoda close() - închide fisierul și eliberează memoria.
Pentru a ne asigura că orice fişier va fi închis după ce a fost utilizat se poate folosi managerul de
context (context manager) with care se asigură că fişierul va fi închis odată ce s-a terminat
executarea blocului de cod inclus în acesta.
Sintaxa:
De exemplu
Cuvântul cheie with ne indică prezenţa unui manager de context, urmând apoi o funcţie care
returnază un manager de context şi atribuim acest rezultat unei variabile (în cazul nostru f) prin
cuvântul cheie as.
Este recomandată folosirea acestei metode de a lucra cu fişiere în Python. Motivele sunt că pe de
o parte, codul arată mult mai bine şi este mai uşor de întreţinut, iar pe de cealaltă parte, elimină
posibilitatea de a uita un fişier deschis.
Identificator_fişier.write(string[/n])
unde:
Identificator_fişier - numele variabilei care referă obiectul fișier
string – un şir care va fi scris în fişier
/n face ca şirul să fie scris într-o linie nouă
Daca şirul este de tip numeric sau listă se face mai întâi conversia la tipul string și apoi se scrie
în fișier.
Dacă şirul e de tip obiect (instanță a clasei X), atunci clasa respectivă trebuie să implementeze
metoda __str__ (__repr__)
Fişierul trebuie deschis în prealabil pentru scris (‘w’ sau ‘a’) altfel apare eroare.
Exemplu 1:
sau
client=‘Metro’
fisier_client.write(‘client’)
fisier_client.close()
Exemplu 2:
Exemplu:
Expresia str(nr1) + ‘\n’ convertește valoarea referită de variabila nr1 într-un șir și o concatenează
cu ‘\n’ șirului.
Metoda readline() - citirea unei linii din fișier și returnarea ei sub formă de string
Exemplu :
print(open(“client.txt’).read())
Copierea conţinutului unui fişier
fisier=open(‘date.txt’. ’r’)
linii=fisier.read()
fisier.close()
copie=open(‘copiedate.txt’, ‘w’)
copie.write(linii)
copie.close()
Fişiere CSV
Un fișier CSV (fișier cu valori separate prin virgulă) este un tip de fișier text simplu care
utilizează structurarea specifică pentru a aranja datele tabulare. Deoarece este un fișier text
simplu, acesta poate conține numai date de text reale - cu alte cuvinte, caractere tipărite ASCII
sau Unicode.
Structura unui fișier CSV este dată de numele său. În mod normal, fișierele CSV utilizează o
virgulă pentru a separa fiecare valoare specifică a datelor.
În general, caracterul separator se numește delimitator, iar virgula nu este singura folosită. Alte
delimitatoare populare includ caracterele tab (\ t), colon (:) și semi-colon (;). Executarea corectă
a unui fișier CSV ne cere să știm ce delimitator este utilizat.
Citirea dintr-un fișier CSV se face utilizând obiectul reader prin intermediul bibliotecii CSV
care se deschide prin instrucţiunea import csv.
Fișierul CSV este deschis ca fișier text cu funcția open(), care returnează un obiect de fișier.
Acesta este apoi transmis către reader.
nume,departament, luna
Popescu Ion,Contabilitate,Noiembrie
Ipnescu Virgil,IT,Martie
Programul:
import csv
with open(angajati.txt') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print(f'Numele coloanelor sunt{", ".join(row)}')
line_count += 1
else:
print(f'\t{row[0]} lucrează în departamentul {row[1]}, s-a nascut în {row[2]}.')
line_count += 1
print(f'Procesate {line_count} linii.')
Rezultatul va fi:
Fiecare rând returnat de reader este o listă a elementelor String care conțin datele găsite prin
eliminarea delimitatorilor. Primul rând returnat conține numele coloanelor, care sunt tratate într-
un mod special.
Bibliografie
http://mirceaprodan.com/wp-content/uploads/2014/10/Cum-sa-programezi-in-PythonMP.pdf