Introducere
În această lecție, vom explora lucrul avansat cu fișiere în Python. Vom învăța despre diferite moduri de a citi și scrie fișiere, cum să lucrăm cu fișiere binare, și cum să gestionăm erorile și excepțiile legate de fișiere.
Cuprins
- Recapitulare: Lucrul de bază cu fișiere în Python
- Citirea și scrierea fișierelor în modul text
- Citirea și scrierea fișierelor în modul binar
- Utilizarea managerului de context pentru lucrul cu fișiere
- Gestionarea erorilor și excepțiilor legate de fișiere
- Utilizarea modulelor
osșishutilpentru gestionarea fișierelor și directoarelor - Încheiere și concluzii
1. Recapitulare: Lucrul de bază cu fișiere în Python
În Python, putem lucra cu fișiere folosind funcția open() pentru a deschide un fișier și a obține un obiect care ne permite să citim și să scriem în fișier. După ce am terminat de lucrat cu fișierul, trebuie să-l închidem folosind metoda close().
Exemplu de bază:
file = open('file.txt', 'r')
content = file.read()
print(content)
file.close()
2. Citirea și scrierea fișierelor în modul text
Când deschidem un fișier în modul text, Python tratează conținutul fișierului ca și cum ar fi un șir de caractere. Modurile comune pentru a deschide un fișier în modul text sunt:
- Modul de citire (
'r'): Deschide fișierul în modul de citire și returnează un obiect care poate fi folosit pentru a citi conținutul fișierului. - Modul de scriere (
'w'): Deschide fișierul în modul de scriere și returnează un obiect care poate fi folosit pentru a scrie în fișier. Dacă fișierul există deja, conținutul său va fi șters. - Modul de adăugare (
'a'): Deschide fișierul în modul de adăugare și returnează un obiect care poate fi folosit pentru a adăuga conținut la sfârșitul fișierului.
Exemplu de citire a fișierului linie cu linie:
with open('file.txt', 'r') as file:
for line in file:
print(line.strip())
Exemplu de scriere a fișierului:
with open('file.txt', 'w') as file:
file.write('Hello, world!')
3. Citirea și scrierea fișierelor în modul binar
Când deschidem un fișier în modul binar, Python tratează conținutul fișierului ca fiind o secvență de octeți. Putem deschide un fișier în modul binar adăugând 'b' la modul de deschidere ('rb', 'wb' sau 'ab').
Exemplu de citire a fișierului în modul binar:
with open('file.bin', 'rb') as file:
data = file.read()
print(data)
Exemplu de scriere a fișierului în modul binar:
with open('file.bin', 'wb') as file:
data = b'x01x02x03'
file.write(data)
4. Utilizarea managerului de context pentru lucrul cu fișiere
Atunci când lucrăm cu fișiere, este important să ne asigurăm că fișierul este închis corect după ce am terminat de lucrat cu el. O modalitate de a face acest lucru este să folosim managerul de context with, care se ocupă automat de închiderea fișierului.
Exemplu de folosire a managerului de context:
with open('file.txt', 'r') as file:
content = file.read()
print(content)
5. Gestionarea erorilor și excepțiilor legate de fișiere
Când lucrăm cu fișiere, este posibil să întâmpinăm diverse erori, cum ar fi fișiere inexistente, probleme de acces sau alte probleme legate de sistemul de fișiere. Pentru a gestiona aceste erori, putem folosi blocurile try și except.
Exemplu de gestionare a erorilor la deschiderea unui fișier:
try:
with open('nonexistent_file.txt', 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
print('Fișierul nu a fost găsit.')
6. Utilizarea modulelor os și shutil pentru gestionarea fișierelor și directoarelor
Modulul os ne oferă funcții pentru a interacționa cu sistemul de operare, inclusiv operațiuni pe fișiere și directoare. Modulul shutil ne oferă funcții mai înalte pentru gestionarea fișierelor și directoarelor.
Exemple de funcții utile din modulul os:
os.getcwd(): Returnează directorul de lucru curent.os.path.exists(path): ReturneazăTruedacăpathexistă sauFalseîn caz contrar.os.path.isfile(path): ReturneazăTruedacăpatheste un fișier sauFalseîn caz contrar.os.path.isdir(path): ReturneazăTruedacăpatheste un director sauFalseîn caz contrar.os.makedirs(path): Creează un director și toate directoarele părinte, dacă este necesar.os.rmdir(path): Șterge un director gol.os.remove(path): Șterge un fișier.
Exemple de funcții utile din modulul shutil:
shutil.copy(src, dst): Copiază fișierulsrcîndst. Dacădsteste un director, se copiază fișierul în directoruldstcu același nume.shutil.copytree(src, dst): Copiază întregul directorsrcîndst. Creeazădstdacă nu există.shutil.rmtree(path): Șterge întregul directorpathși conținutul său. Utilizați cu precauție.
7. Încheiere și concluzii
În această lecție, am învățat despre lucrul avansat cu fișiere în Python, inclusiv despre diferite moduri de a citi și scrie fișiere, cum să lucrăm cu fișiere binare și cum să gestionăm erorile și excepțiile legate de fișiere. Am explorat, de asemenea, modulele os și shutil pentru a efectua operațiuni pe fișiere și directoare.
Cu aceste cunoștințe, sunteți pregătit să lucrați eficient și în siguranță cu fișiere și directoare în proiectele dvs. Python.