open in Python

In questa lezione studieremo il metodo open in Python, ovvero vedremo come aprire un file di testo o binario.

Nella precedente lezione abbiamo parlato di file e abbiamo visto la differenza tra file binari e di testo (o ASCII). Nei nostri esempi saranno usati principalmente file di testo per memorizzare archivi sia con lunghezza fissa sia con lunghezza variabile.

Dunque, per operare su un file in linguaggio Python dobbiamo eseguire queste semplici fasi:

  • innanzitutto aprire il file specificando: nome, estensione (obbligatori) e tipo di accesso (se in scrittura, lettura, in modalità append per aggiungere contenuto ad un file esistente, in lettura e scrittura. Dato opzionale in quanto ha un valore di default che è in lettura). Oltre a questi valori ci sono altri argomenti che si possono indicare e che vedremo a mano a mano nel tutorial;
  • dopo fare le operazioni sul file;
  • infine chiudere il file.

Se il file non si trova nella stessa cartella del file Python occorre specificare il percorso corretto. Se siete alle prime armi vi consiglio di lasciare il file nella stessa cartella del file di Python.

Open in Python

I flussi vengono descritti tramite le classi, ovvero un elenco di proprietà e metodi collegati tra loro. Una volta dichiarata una variabile di tipo oggetto si dispone di tutte le proprietà e metodi collegati ad esso.

Uno dei metodi che vi voglio presentare è proprio open in Python che ci permette di aprire un file.

Vediamolo in dettaglio, supponendo di voler aprire un file di nome coding.txt che si trova nella stessa cartella del nostro file Python.

f=open(‘coding.txt‘,’r’) # Apertura in input

Consente di aprire il file solo per la lettura dei caratteri. Ma attenzione, se il file non esiste ci restituirà un errore!

Puntualizziamo però che la sintassi completa sarebbe questa:

f = open(‘coding.txt’, mode = ‘r’)

Ma possiamo anche omettere mode.

Da notare cha abbiamo dichiarato una variabile f di tipo oggetto sulla quale poi applicheremo i vari metodi.

Facciamo adesso un altro semplice esempio:

f = open(‘coding.txt’,’w’) # Apertura in output

Si apre il file e si consente la scrittura su di esso. Ma attenzione, se il file esiste viene cancellato e ricreato!

Vediamo in dettaglio le varie modalità di apertura di un file.

Modalità di apertura di un file in Python

Approfondiamo il metodo open in Python studiando in dettaglio le varie modalità di accesso.

Di seguito ecco una tabella esplicativa dei tipi di accesso ad un file in Python.

Modalità Esempio Utilizzo
r open(‘coding.txt’,’r’) Valore di default. Crea il file e lo apre in sola lettura. Se il file esiste non esiste viene restituito un messaggio di errore.
w open(‘coding.txt’,’w’) Crea il file e lo apre in sola scrittura. Se il file esiste viene cancellato.
a open(‘coding.txt’,’a’) Apre in file in modalità append, ovvero consente di aggiungere testo in un file già esistente. Se il file non esiste lo crea.
+ open(‘coding.txt’,’r+’) Apre il file in modalità lettura e scrittura in modalità append. Se il file non esiste restituisce errore.
x open(‘coding.txt’,’x’) Crea il file, se già il file esiste restituisce errore.
t open(‘coding.txt’,’t’) Apre un file in modalità testo.
b open(‘coding.jpg’,’b’) Apre un file in modalità binaria. Ad esempio per le immagini.

Facciamo adesso un esempio combiando più opzioni di quelle elencate nella tabella sopra:

f=open(‘coding.jpg’,’r+b’)

Questa semplicissiam riga di codice consente di aprire un file binario di nome coding.jpg in lettura e scrittura.

In questa lezione abbiamo dunque introdotto il metodo open in Python nella prossima parleremo del metodo write.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

Continua la lettura su: https://www.codingcreativo.it/open-in-python/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Articoli Correlati

Ordinare un dizionario in Python

Si può ordinare un dizionario in Python per chiave o per valore. Facciamo alcuni esempi pratici di ordinamento in Python in base alle nostre esigenze.

Tutti gli esempi proposti possono essere provati nel compiler online che troverete al seguente link: Python compiler online.

Primo esempio – Ordinare un dizionario in Python per chiave

In questo primo esempio dapprima creiamo un dizionario in Python. Abbiamo poi detto di ordinare per chiave, quindi dobbiamo decidere se seguire un ordine crescente o decrescente, infine dobbiamo richiamare la funzione sul dizionario.

Implementiamo, dunque, una prima soluzione. Per ordinare in senso crescente possiamo utilizzare la funzione sorted sul nostro dizionario, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student):
print(key, student[key])

E se vogliamo un ordinamento decrescente? Basterà semplicemente utilizzare il parametro reverse della funzione sorted, impostandolo a False.

Ecco un esempio di dizionario ordinato in senso decrescente in Python:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student, reverse = True):
print(key, student[key])

Secondo esempio – Ordinare un dizionario in Python per chiave

Cerchiamo adesso una seconda soluzione al problema proposto.

Innanzitutto potremmo ad esempio pensare di utilizzare il metodo keys() sul dizionario, ma cosa succede?

Proviamolo, dunque, con un esempio:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_key = sorted(student.keys())

for element in sorted_key:
print(element)

In questo caso si avrà il seguente output:

age
hobby
mail
name
passion

Ovvero avremo le sole chiavi ordinate in senso crescente.

Quindi, anche se uso il metodo dict() non riuscirò in questo modo ad ordinare un dizionario in Python.

E se invece proviamo ad utilizzare il metodo values()?

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_values = sorted(student.values())

for element in sorted_values:
print(element)

Il risultato sarà il seguente:

29
Cristina
coding
codingcreatico@gmail.com
swim

Quindi se voglio ordinare un dizionario in Python per chiave cosa devo fare? Quale altra soluzione posso pensare?

Possiamo, ad esempio, utilizzare il metodo items(), che abbiamo studiato in questa lezione: items Python.

Ricordiamo inoltre che questo metodo è utilizzato per restituire l’elenco con tutte le chiavi del dizionario con i suoi rispettivi valori.

Dopo, possiamo nuovamente riconvertire le coppie di tuple in un dizionario utilizzando il metodo dict().

Ecco una possibile soluzione al nostro algoritmo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_student = sorted(student.items())
sorted_student_dict = dict(sorted(student.items()))

print(sorted_student_dict)

for element in sorted_student_dict:
print(element, ‘: ‘, sorted_student_dict[element])

Così abbiamo ottenuto tutte le coppie di tuple chiave, valori ordinate in senso crescente. Poi, convertiamolo in dizionario con il metodo dict(). Così riusciamo ad ordinare il dizionario in Python per chiave.

Utilizziamo una funzione per poterla poi utilizzare per creare l’ordinamento su più dizionari:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items()))

print(sort_dict(student))

Ordinare un dizionario in Python per chiave in senso decrescente

Questa volta utilizziamo il parametro reverse di sorted per creare un ordinamento decrescente sui dizionari. Infatti impostandolo a True l’ordinamento sarà decrescente. Di default il suo valore è False.

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items(), reverse = True))

print(sort_dict(student))

Per completezza potremmo passare questo parametro anche alla funzione, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d, rev):
return dict(sorted(student.items(), reverse = rev))

print(sort_dict(student, True))

Conclusione

In questa lezione abbiamo affrontato alcuni interessanti esempi su come ordinare un dizionario in Python per chiave, in ordine crescente e decrescente.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Operazioni con i file in Python

In questa lezione studieremo come effettuare delle operazioni con i file in Python.

Infatti, in Python, come negli altri linguaggi di programmazione, si dispone di funzioni per le operazioni di Input/Output sui file, non dissimili da quelle per l’I/O su console.

Ricordiamo che con il termine di file intendiamo tutto ciò che può essere registrato su un supporto di memoria di massa (disco rigido, pen drive, ecc.).

Il file è identificato da un nome e dall’estensione. Il nome solitamente è significativo, in modo da far intendere il contenuto che il file contiene, mentre l’estensione identifica il programma con il quale deve essere eseguito.

Le operazioni che si fanno sui file sono quelle di:

apertura – il file, salvato nella memoria di massa, viene caricato in memoria centrale solitamente per le operazioni di lettura o scrittura.chiusura – il file caricato nella memoria centrale viene chiuso, ovvero viene interrotto il collegamento tra memoria centrale e memoria di massa che contiene quel file.lettura – dopo l’operazione di apertura si può effetturare la lettura, ovvero si interpreta il contenuto del file caricandolo nella memoria centrale.scrittura – dopo l’operazione di apertura si possono effettuare le operazioni di scrittura sul file, ovvero si salvano le modifiche nella memoria centrale.

La lettura si indica con INPUT (dalla memoria di massa a quella centrale) mentre la scrittura si indica con OUTPUT (dalla memoria centrale a quella di massa). Le operazioni che servono a trasferire informazioni dalla memoria centrale a quella di massa sono definite operazioni di Input/Output.

Operazioni con i file in Python – tipi di file

I file trattati dal file system si possono dividere in file di testo o file binari.

Ma qual è la differenza e perchè dobbiamo conoscerla?

Questi file codificano i dati in maniera diversa:

I file di testo detti anche file ASCII contengono caratteri di fine riga (EOL) e ciascun byte rappresenta un carattere della codifica ASCII. Sono adatti a memorizzare dati di lunghezza diversa, sono più pesanti ma possono essere letti su computer che hanno sistemi operativi diversi.

I file binari invece sono considerati come un flusso continuo di bit, sono più veloci nelle operazioni di lettura e scrittura e occupano meno spazio sul disco.

In Python utilizziamo i file di testo per gestire informazioni di tipo testuale mentre i file binari per gestire ad esempio immagini o suoni. Teniamo presente queste informazioni per le operazioni sui file in Python che vedremo nelle prossime lezioni.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000