Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Gestione dei File e degli Errori in Python: Guida Completa, Dispense di Informatica gestionale

Questi appunti del politecnico di torino forniscono una panoramica completa sulla gestione dei file in python, con un focus particolare sulla lettura e scrittura di file di testo. Vengono illustrati i concetti fondamentali come l'apertura, l'accesso e la chiusura dei file, nonch e9 la gestione degli errori e delle eccezioni. Il documento include esempi pratici e spiegazioni dettagliate per comprendere come manipolare i file in modo efficace e sicuro, affrontando anche le problematiche relative alla codifica dei caratteri e all'accesso sequenziale ai dati. Si tratta di un'ottima risorsa per gli studenti di informatica che desiderano approfondire le proprie competenze nella programmazione e nella gestione dei dati.

Tipologia: Dispense

2024/2025

Caricato il 18/06/2025

stefano-haras
stefano-haras 🇮🇹

1 documento

1 / 54

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Unità P7:
File e Gestione
Errori
LEGGERE, ANALIZZA RE E SCRIVERE FILE.
GESTIRE ERRORI E D E C C E Z I O N I .
Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 1
This Photo by Unknown Author is licensed under CC BY-SA
Chapter 7
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Anteprima parziale del testo

Scarica Gestione dei File e degli Errori in Python: Guida Completa e più Dispense in PDF di Informatica gestionale solo su Docsity!

Unità P7: File e Gestione Errori LEGGERE, ANALIZZARE E SCRIVERE FILE.GESTIRE ERRORI ED ECCEZIONI.^ Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^ Chapter 7^ This Photo^ by Unknown Author is licensed under^ CC BY-SA

Obiettivi dell’Unità ^ Leggere e scrivere file di testo ^ Elaborare sequenze di dati provenienti da file ^ Generare e gestire errori ed eccezioni Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

In questa unità si apprenderà comescrivere programmi che manipolano i file

Leggere e scrivere file di testo ^ I file di testo sono usati molto spesso per memorizzareinformazioni^ oSono il tipo più ‘portabile’ di file di dati ^ Esempi di file di testo comprendono^ oFile creati con semplici editor di testo, come Blocco Note diWindows^ oCodice sorgente in Python^ oFile HTML^ oFile CSV (comma-separated values: valori separati da virgole)^ o… Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

Approfondimento: tipi di file ^ File di testo =^ file il cui contenuto e’ una serie di caratteri^ o^ 8 bits ASCII (versione base dell’UNICODE) ^ I file non “di testo” sono detti file

binari o^ File la cui interpretazione dei bit dipende dal programma che li deve usare  Esempi: o^ File^ .doc/docx:^ •^ “comprensibili” solo dal programma MS Word (o equivalenti)^ •^ Implica che il contenuto binario e’ opportunamente codificato da Word stesso o^ File^ .pdf:^ •^ Comprensibile solo da un PDF reader (che conosce la relativa codifica)  Cosa succede se proviamo a trattarli come un file di testo? Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

Aprire file: Lettura ^ Per accedere ad un file, occorre innanzitutto

aprirlo ^ Si usa la funzione^ open()

che utilizza due argomenti o^ Il nome del file da aprire o^ La modalita’ con cui voglio aprirlo^ •^ Lettura o scrittura  open()^ restituisce un oggetto “file”, che useremo perleggerne/scriverne il contenuto Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

Aprire file: Lettura ^ Esempio: ^ Questa operazione crea un collegamento tra il file fisico (su disco,”input.txt”) ed una struttura dati (file logico,

infile) che permette di usare i dati del file dentro il programma Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^ infile^ =^ open("input.txt", "r"

infile^ =^ open("input.txt", "r"

Variabile di tipo ‘file’

Aprire file: Scrittura ^ Per scrivere su un file lo apre “in scrittura” ^ Si fornisce il nome del file come primo argomento alla funzione^ open, e la stringa^ "w"

come secondo argomento: ^ ATTENZIONE:^ oSe il file di output non esiste ancora, viene creato un file vuoto^ oSe il file di output esiste già, il suo contenuto viene svuotato Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^ outfile =^ open(

"output.txt", "w"

outfile =^ open(

"output.txt", "w"

Aprire file: Aggiunta (append) ^ In alternativa si puo’ scrivere su un file “aggiungendo” al fondo delfile ^ ATTENZIONE:^ oSe il file di output non esiste ancora, viene creato un file vuoto^ oSe il file di output esiste già, si aggiunge al fondo del file Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^ outfile =^ open( "output.txt", “a"

outfile =^ open( "output.txt", “a"

Riassumendo: aprire e chiudere file Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

⚠^ Lettura di file UTF

  • 8 NEW ^ Se il file contiene^ lettere accentate o altri simboli non presenti nelcodice ASCII di base

, esso solitamente è codificato con la codificaUnicode, in particolare UTF- ^ La funzione^ open()

in Python utilizza per default l’

encoding definito dal sistema operativo^ o^ dipende dal sistema operativo e dalla lingua di installazione!  Per specificare che il file è Unicode (e quindi non va aperto conl’encoding del sistema operativo, ma con UTF-8),

aggiungere sempre^ un argomento:

encoding='utf-8'

nella funzione^ open Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^ infile = open('file.txt', 'r',

encoding='utf-8'

infile = open('file.txt', 'r',

encoding='utf-8'

Leggere da un file ^ Definita la tipologia di accesso (sequenziale) possiamo prelevaredati con «blocchi» di 4 diverse dimensioni:^ oUna riga*:^ infile.readline()

/^ for line in infile o1 carattere:^ infile.read(1) oN caratteri:^ infile.read(N) oL’intero file:^ infile.readlines()

/^ infile.read() ^ Dopo ogni lettura, il cursore viene fatto avanzare fino al primo«blocco» non ancora letto Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

IMPORTANTE!!!^16

  • Riga = stringa terminate dal ritorno a capo ‘\n’

Leggere una riga da un file ^ Per leggere^ una linea (riga) di testo

da un file, chiamare il metodo readline()^ sull’oggetto file ritornato da

open(): ^ readline()^ legge il testo, partendo dalla posizione attuale delcursore, e continua

fino a quando non incontra la

fine della linea o^ La fine della linea è identificata dal carattere

'\ne viene inclusa nella stringa letta o Il cursore viene quindi spostato all’inizio della linea successiva Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

line = infile.

readline()

line = infile.

readline()

stringa

Leggere un intero file:

pattern di lettura

^ Schema generale Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^

line = infile.readline() line = infile.readline()while line != "" :while line != "" :^ #^ processa la linea^ #^ processa la linea^ line = infile.readline()^ line = infile.readline()

IMPORTANTE!!!

NOTA: Ricordate che

line^ e’ sempre una stringa (con il ‘\n’)

Convertire i valori letti da file ^ Come con^ input()

, i dati letti dal metodo

readline()^ sono esclusivamente^ stringhe  Se il file contenesse dati

numerici, e’ sufficiente convertire i valori con le solite funzioni

int()^ o^ float()^

^ NOTA:^ Il carattere di fine linea al fondo della stringa

viene^ in questo caso^ ignorato dalle funzioni di conversione

, senza generare errori^ o^ Esempio:^ x = int("123\n")

=>^ x contiene 123^ (intero) Politecnico di Torino, 2024/^

INFORMATICA / COMPUTER SCIENCES^