In questo tutorial, lavoreremo sulle diverse operazioni sui file in Python. Vedremo come utilizzare Python per leggere un file, scriverci sopra, eliminare file e molto altro ancora. Quindi senza alcun ritardo, cominciamo.
Lavorare con i File in Python
Nel tutorial precedente, abbiamo utilizzato la console per prendere input. Ora, prenderemo input utilizzando un file. Ciò significa che leggeremo e scriveremo nei file. Per farlo, dobbiamo seguire alcuni passaggi. Questi sono:
- Aprire un file
- Prendere input da quel file / Scrivere output in quel file
- Chiudere il file
Impareremo anche alcune operazioni utili come copiare un file ed eliminare un file.
Perché sono necessarie le operazioni sui file in Python?
Quando si lavora con grandi set di dati nei problemi di apprendimento automatico, lavorare con i file è una necessità di base. Poiché Python è un linguaggio ampiamente utilizzato per la scienza dei dati, è necessario essere competenti nelle diverse operazioni sui file che Python offre.
Quindi, esploriamo alcune delle operazioni sui file Python qui.
1. Aprire un file in Python con la funzione open()
Il primo passo per lavorare con i file in Python è imparare come aprire un file. Puoi aprire i file utilizzando il metodo open()
.
La funzione open() in Python accetta due argomenti. Il primo è il nome del file con il percorso completo e il secondo è la modalità di apertura del file.
Di seguito ho elencato alcune delle modalità comuni di lettura dei file:
- ‘r’ : Questa modalità indica che il file verrà aperto solo per la lettura
- ‘w’ : Questa modalità indica che il file verrà aperto solo per la scrittura. Se il file con quel nome non esiste, ne verrà creato uno nuovo
- ‘a’ : Questa modalità indica che l’output di quel programma verrà aggiunto all’output precedente di quel file
- ‘r+’ : Questa modalità indica che il file verrà aperto sia per la lettura che per la scrittura
Inoltre, per il sistema operativo Windows, puoi aggiungere ‘b’ per accedere al file in formato binario. Questo perché Windows differenzia tra un file di testo binario e un normale file di testo.
Supponiamo di collocare un file di testo chiamato ‘file.txt’ nella stessa directory in cui si trova il nostro codice. Ora vogliamo aprire quel file.
Tuttavia, la funzione open(filename, mode) restituisce un oggetto file. Con quell’oggetto file puoi procedere con ulteriori operazioni.
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#Un altro metodo usando la posizione completa
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
L’output del codice seguente sarà
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. Leggere e scrivere su file in Python
Python offre vari metodi per leggere e scrivere su file, ognuno dei quali si comporta in modo diverso. Una cosa importante da notare è la modalità di operazioni sui file. Per leggere un file, è necessario aprirlo in modalità di lettura o scrittura. Mentre per scrivere su un file in Python, è necessario che il file sia aperto in modalità di scrittura.
Ecco alcune delle funzioni in Python che ti permettono di leggere e scrivere su file:
- read() : Questa funzione legge l’intero file e restituisce una stringa
- readline() : Questa funzione legge le righe di quel file e le restituisce come una stringa. Recupera la riga n, se è stata chiamata n-esima volta.
- readlines() : Questa funzione restituisce una lista dove ogni elemento è una singola riga di quel file.
- readlines() : Questa funzione restituisce una lista dove ogni elemento è una singola riga di quel file.
- write() : Questa funzione scrive una sequenza fissa di caratteri su un file.
- writelines() : Questa funzione scrive una lista di stringhe.
- append() : Questa funzione aggiunge una stringa al file anziché sovrascrivere il file.
Prendiamo ad esempio il file “abc.txt” e leggiamo singole linee dal file con un ciclo for:
#apri il file
text_file = open('/Users/pankaj/abc.txt','r')
#ottieni la lista delle linee
line_list = text_file.readlines();
#per ogni linea dalla lista, stampa la linea
for line in line_list:
print(line)
text_file.close() #non dimenticare di chiudere il file
Output:
Ora, che sappiamo come leggere un file in Python, procediamo e eseguiamo un’operazione di scrittura qui con la funzione writelines().
#apri il file
text_file = open('/Users/pankaj/file.txt','w')
#inizializza una lista vuota
word_list= []
#itera 4 volte
for i in range (1, 5):
print("Please enter data: ")
line = input() #prendi l'input
word_list.append(line) #aggiungi alla lista
text_file.writelines(word_list) #scrivi 4 parole nel file
text_file.close() #non dimenticare di chiudere il file
Output
3. Copiare file in Python usando il metodo shutil()
Possiamo utilizzare il modulo shutil per copiare file in Python. Questa utilità ci consente di eseguire operazioni di copia e spostamento in Python su diversi file. Lavoriamo su questo con un esempio:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#altro modo per copiare il file
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. Eliminare file in Python con il metodo shutil.os.remove()
Il modulo shutil di Python offre il metodo remove() per eliminare file dal sistema di file. Vediamo come possiamo eseguire un’operazione di eliminazione in Python.
import shutil
import os
#due modi per eliminare il file
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. Chiudere un file aperto in Python con il metodo close()
Quando apri un file in Python, è estremamente importante chiudere il file dopo aver apportato le modifiche. Ciò salva le modifiche effettuate in precedenza, rimuove il file dalla memoria e impedisce ulteriori letture o scritture all’interno del programma.
Sintassi per chiudere un file aperto in Python:
fileobject.close()
Se proseguimo dai nostri esempi precedenti in cui abbiamo letto i file, ecco come chiuderesti il file:
text_file = open('/Users/pankaj/abc.txt','r')
# operazioni su file qui
text_file.close()
Inoltre, puoi evitare di chiudere i file manualmente se usi il blocco with. Appena viene eseguito il blocco with, i file vengono chiusi e non sono più disponibili per la lettura e la scrittura.
6. Python FileNotFoundError
È comune ricevere il FileNotFoundError quando si lavora con i file in Python. Può essere facilmente evitato fornendo percorsi completi dei file quando si crea l’oggetto file.
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
Per risolvere il FileNotFoundError, è sufficiente verificare che il percorso menzionato per il metodo di apertura del file sia corretto.
Conclusion
Queste sono le operazioni sui file in Python. Ci sono molte altre modalità in cui è possibile utilizzare i file all’interno di Python, che includono la lettura dei dati CSV e altro ancora. Ecco un articolo su come è possibile utilizzare il modulo Pandas per leggere i set di dati CSV in Python.
I hope you enjoyed reading the article! Happy learning 🙂
**Riferimenti:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy