Anteprima
Vedrai una selezione di 1 pagina su 3
Formule Python Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
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 = ...

Dettagli
Publisher
A.A. 2019-2020
3 pagine
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.