Estratto del documento

Modalità di apertura dei file in Python

La modalità di apertura di un file in Python determina come il file verrà aperto e utilizzato nel programma. La modalità predefinita è impostata su "r" (sola lettura), che restituisce un errore se il file non esiste.

Ecco le diverse modalità di apertura dei file in Python:

  • 'r': apre il file in modalità di sola lettura. Se il file non esiste, viene restituito un errore.
  • 'r+': apre il file in modalità di lettura e scrittura. Se il file esiste, i dati non vengono eliminati. Se il file non esiste, viene restituito un errore.
  • 'w': apre il file in modalità di scrittura. Se il file esiste, i dati vengono eliminati. Se il file non esiste, viene creato un nuovo file.
  • 'w+': apre il file in modalità di lettura e scrittura. Se il file esiste, i dati vengono eliminati. Se il file non esiste, viene creato un nuovo file.
  • 'a': apre il file in modalità di append. È possibile scrivere alla fine dei dati già esistenti. Se il file non esiste, viene creato un nuovo file.
  • 'a+': apre il file in modalità di append e lettura. Se il file esiste, Python si posiziona dopo il testo esistente. Se il file non esiste, viene creato un nuovo file.

Gli attributi di un oggetto file forniscono informazioni sul file:

  • variable.name: restituisce il percorso e il nome del file.
  • variable.mode: restituisce la modalità di apertura del file.
  • variable.closed: restituisce True o False, a seconda che il file sia chiuso o aperto.
aperto. Metodi per leggere i dati:
  • .read(size): legge il file dalla posizione corrente alla fine. Se size (opzionale) legge numero byte.
  • .readline(size): legge il contenuto di una riga di testo, anche qui size è opzionale.
  • .readlines(size): lista legge il contenuto di tutte le righe di testo fino alla fine del file e da una che ha per elementi le singole righe.
  • .seek(offset,[whence]): permette di spostare il puntatore alla posizione desiderata, specificando di quanti byte (offset) mi devo muovere. Whence 0 = inizio; 1 = posizione corrente; 2 = fine file.
  • .tell: dice la posizione nel testo in termini di byte a partire dall'inizio (conta spazi e /).
Metodi per scrivere su un file:
  • .writable(): True se posso scrivere sul file, False se non posso.
  • .write(string): scrive nel file il contenuto inserito nell'argomento string (anche eventuali /). Alla fine, numero caratteri scritti e puntatore si posiziona alla fine del testo.
  • .writelines(lines): scrive nel file la sequenza di righe.specificate nell'argomento lines (anche /). OGGETTI:
    • Metodi: azioni che oggetti di una classe possono compiere.
    • Attributi: caratteristiche della classe che servono a personalizzare singoli oggetti della classe. Possono essere built-in di Python o altri oggetti. Posso definirli direttamente nella classe, ma conviene usare __init__ (dentro __init__ self è obbligatorio).
    Classe: Definizione di blocco di codice che contiene sia attributi che i metodi relativi ad un oggetto. Ogni codice può essere riutilizzato, quindi va reso meno complicato possibile. Principi base approccio OOP:
    • Incapsulamento: caratteristica che non rende visibili agli altri oggetti le caratteristiche di una classe.
    • Ereditarietà: da parentclass, creo una childclass che eredita metodi e attributi, alla classe posso comunque aggiungerne di nuovi.
    • Polimorfismo: meccanismo con cui si dà lo stesso nome a metodi che agiscono su oggetti diversi. Caratteristica che consente al programma di decidere in che modo utilizzare una

    determinata funzione o metodo, a seconda del tipo di dato che ha davanti.

    Classe: insieme delle caratteristiche che può assumere un determinato tipo di oggetto, costituita da attributi e metodi. (es. lista è una classe). Tutte derivano da classe object.

    L'istanza invece è il singolo oggetto appartenente alla classe (creare variabile = creare istanza).

    Esistono classi già presenti nella libreria standard, ma se voglio crearne una nuova o far vedere che ne sto usando una la metto con la lettera maiuscola.

    Creazione di una classe:

    Per crearne una devo assegnarle un nome + metodi e attributi.

    class Nome():

    def __init__(self):

    self.attributo1 = valore1

    ...

    def metodo1(self, argomentiObbligatori, argomentiOpzionali = "x"):

    "istruzione 1"

    ...

    Dentro init scrivo gli attributi di istanza. Gli attributi di classe posso scriverli direttamente dopo class Nome():

    attributo1 = valore 1 etc...

    Posso mettere tutti gli attributi, metodi ed istruzioni

    che voglio. Tutte le istanze di una classe ereditano gli attributi ed i metodi della classe. Gli attributi ereditati dalle singole istanze possono essere assegnati in fase di creazione dell'istanza e/o modificati in un secondo momento.

    Creazione istanza: nome = classe(attributi)

    Posso fare in due modi, o metto tutti gli attributi (obbligatorio per forza) e separati da una virgola anche gli altri. Oppure creo l'istanza con parametro obbligatorio e poi faccio nome.attributo = ...

Anteprima
Vedrai una selezione di 1 pagina su 3
Formule Python Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher martina009070 di informazioni apprese con la frequenza delle lezioni di Computer science e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Commerciale Luigi Bocconi di Milano o del prof Clerici Alberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community