python file handling tutorial
Uno sguardo approfondito alle operazioni di gestione dei file Python con esempi pratici:
Nella serie di Tutorial Python per principianti , abbiamo imparato di più su Funzioni stringa Python nel nostro ultimo tutorial.
Python ci fornisce un'importante funzionalità per leggere i dati dal file e scrivere i dati in un file.
Per lo più, nei linguaggi di programmazione, tutti i valori o dati sono memorizzati in alcune variabili che sono di natura volatile.
Perché i dati verranno memorizzati in quelle variabili solo durante il runtime e andranno persi una volta completata l'esecuzione del programma. Quindi è meglio salvare questi dati in modo permanente utilizzando i file.
Cosa imparerai:
- Come Python gestisce i file?
- Tipi di file in Python
- Operazioni di gestione dei file Python
- Codifica nei file
- Scrittura e lettura di dati da un file binario
- Attributi di I / O file
- Metodi di file Python
- Sommario
- Lettura consigliata
Come Python gestisce i file ?
Se si lavora in un'applicazione software di grandi dimensioni in cui vengono elaborati un numero elevato di dati, non possiamo aspettarci che tali dati vengano archiviati in una variabile poiché le variabili sono di natura volatile.
Quindi, quando stai per gestire tali situazioni, il ruolo dei file entrerà in scena.
Poiché i file sono di natura non volatile, i dati verranno archiviati in modo permanente in un dispositivo secondario come Hard Disk e utilizzando python gestiremo questi file nelle nostre applicazioni.
Stai pensando a come python gestirà i file?
Prendiamo un Esempio di come le persone normali gestiranno i file. Se vogliamo leggere i dati da un file o scrivere i dati in un file, allora, prima di tutto, apriremo il file o creeremo un nuovo file se il file non esiste e poi eseguiremo le normali operazioni di lettura / scrittura , Salva il file e chiudilo.
Allo stesso modo, eseguiamo le stesse operazioni in Python utilizzando alcuni metodi o funzioni incorporati.
Tipi di file in Python
Esistono due tipi di file in Python e ciascuno di essi è spiegato di seguito in dettaglio con esempi per una facile comprensione.
Sono:
- File binario
- File di testo
File binari in Python
La maggior parte dei file che vediamo nel nostro sistema informatico sono chiamati file binari.
Esempio:
- File di documento: .pdf, .doc, .xls ecc.
- File di immagine: .png, .jpg, .gif, .bmp ecc.
- File video: .mp4, .3gp, .mkv, .avi ecc.
- File audio: .mp3, .wav, .mka, .aac ecc.
- File di database: .mdb, .accde, .frm, .sqlite ecc.
- File di archivio: .zip, .rar, .iso, .7z ecc.
- File eseguibili: .exe, .dll, .class ecc.
Lettura consigliata = >> Come aprire il file .7z
Tutti i file binari seguono un formato specifico. Possiamo aprire alcuni file binari nel normale editor di testo ma non possiamo leggere il contenuto presente all'interno del file. Questo perché tutti i file binari saranno codificati nel formato binario, che può essere compreso solo da un computer o da una macchina.
Per gestire tali file binari abbiamo bisogno di un tipo specifico di software per aprirlo.
Per esempio, È necessario un software Microsoft Word per aprire i file binari .doc. Allo stesso modo, hai bisogno di un software di lettura pdf per aprire file binari .pdf e hai bisogno di un software di editor di foto per leggere i file di immagine e così via.
File di testo in Python
I file di testo non hanno alcuna codifica specifica e possono essere aperti nel normale editor di testo stesso.
Esempio:
- Standard web: html, XML, CSS, JSON ecc.
- Codice sorgente: c, app, js, py, java ecc.
- Documenti: txt, tex, RTF ecc.
- Dati tabulari: csv, tsv ecc.
- Configurazione: ini, cfg, reg ecc.
In questo tutorial vedremo come gestire sia file di testo che file binari con alcuni esempi classici.
Operazioni di gestione dei file Python
Soprattutto ci sono 4 tipi di operazioni che possono essere gestite da Python sui file:
- Aperto
- Leggere
- Scrivi
- Vicino
Altre operazioni includono:
- Rinominare
- Elimina
Python crea e apre un file
Python ha una funzione incorporata chiamata open () per aprire un file.
Richiede almeno un argomento come menzionato nella sintassi seguente. Il metodo open restituisce un oggetto file che viene utilizzato per accedere ai metodi di scrittura, lettura e altri metodi incorporati.
Sintassi:
file_object = open(file_name, mode)
In questo caso, nome_file è il nome del file o la posizione del file che si desidera aprire e anche nome_file dovrebbe avere l'estensione del file inclusa. Il che significa in test.txt - il termine test è il nome del file e .txt è l'estensione del file.
La modalità nella sintassi della funzione open indicherà a Python quale operazione si desidera eseguire su un file.
- 'R' - Modalità di lettura: La modalità di lettura viene utilizzata solo per leggere i dati dal file.
- 'W' - Modalità di scrittura: Questa modalità viene utilizzata quando si desidera scrivere dati nel file o modificarlo. Ricorda che la modalità di scrittura sovrascrive i dati presenti nel file.
- 'A' - Modalità di aggiunta: La modalità Accodamento viene utilizzata per aggiungere dati al file. Ricorda che i dati verranno aggiunti alla fine del puntatore del file.
- 'R +' - Modalità di lettura o scrittura: Questa modalità viene utilizzata quando si desidera scrivere o leggere i dati dallo stesso file.
- 'A +' - Modalità di aggiunta o lettura: Questa modalità viene utilizzata quando si desidera leggere i dati dal file o aggiungere i dati nello stesso file.
Nota: Le modalità sopra menzionate servono solo per aprire, leggere o scrivere file di testo.
Durante l'utilizzo di file binari, dobbiamo usare le stesse modalità con la lettera 'B' alla fine. In modo che Python possa capire che stiamo interagendo con file binari.
- 'Wb' - Apre un file per la modalità di sola scrittura in formato binario.
- 'Rb' - Apri un file per la modalità di sola lettura in formato binario.
- 'A partire dal' - Apri un file per aggiungere solo la modalità in formato binario.
- 'Rb +' - Aprire un file per la modalità di sola lettura e scrittura in formato binario.
- 'Da +' - Aprire un file per l'aggiunta e la modalità di sola lettura in formato binario.
Esempio 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
Nell'esempio precedente, stiamo aprendo il file denominato 'test.txt' presente nella posizione 'C: / Documents / Python /' e stiamo aprendo lo stesso file in modalità di lettura-scrittura che ci offre maggiore flessibilità.
Esempio 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
Nell'esempio sopra, stiamo aprendo il file denominato 'img.bmp' presente nella posizione 'C: / Documents / Python /', ma qui stiamo cercando di aprire il file binario.
Python Leggi da file
Per leggere un file in python, dobbiamo aprire il file in modalità di lettura.
Ci sono tre modi in cui possiamo leggere i file in python.
- leggi ((n))
- readline ((n))
- readlines ()
Qui, n è il numero di byte da leggere.
Innanzitutto, creiamo un file di testo di esempio come mostrato di seguito.
Ora vediamo cosa fa ogni metodo di lettura:
Esempio 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Produzione:
Ciao
Qui stiamo aprendo il file test.txt in modalità di sola lettura e stiamo leggendo solo i primi 5 caratteri del file utilizzando il metodo my_file.read (5).
Produzione:
Esempio 2:
quanto è buono Ubuntu rispetto a Windows
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Produzione:
Ciao mondo
Ciao Python
Buongiorno
Qui non abbiamo fornito alcun argomento all'interno della funzione read (). Quindi leggerà tutto il contenuto presente all'interno del file.
Produzione:
Esempio 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Produzione:
Lui
Questa funzione restituisce i primi 2 caratteri della riga successiva.
Produzione:
Esempio 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Produzione:
Ciao mondo
Usando questa funzione possiamo leggere il contenuto del file riga per riga.
Produzione:
Esempio 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Produzione:
('Hello World n', 'Hello Python n', 'Buongiorno')
Qui stiamo leggendo tutte le righe presenti all'interno del file di testo inclusi i caratteri di nuova riga.
Produzione:
Vediamo ora alcuni esempi più pratici di lettura di un file.
Leggere una riga specifica da un file
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1
Produzione:
Come va
Nell'esempio sopra, stiamo cercando di leggere solo il 4thriga dal file 'test.txt' utilizzando un file 'For loop' .
Produzione:
Leggere l'intero file in una volta
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Produzione:
Ciao mondo
Ciao Python
Buongiorno
Come va
Produzione:
Python Scrivi su file
Per scrivere dati in un file, dobbiamo aprire il file in modalità di scrittura.
Dobbiamo stare molto attenti durante la scrittura dei dati nel file poiché sovrascrive il contenuto presente all'interno del file che stai scrivendo e tutti i dati precedenti verranno cancellati.
Abbiamo due metodi per scrivere dati in un file come mostrato di seguito.
- scrivi (stringa)
- scritture (elenco)
Esempio 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Il codice precedente scrive la stringa 'Hello World' nel file 'test.txt'.
Prima di scrivere i dati in un file test.txt:
Produzione:
Esempio 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
La prima riga sarà 'Hello World' e, come abbiamo accennato al carattere n, il cursore si sposterà sulla riga successiva del file e quindi scriverà 'Hello Python'.
come impostare un'e-mail falsa
Ricorda se non menzioniamo il carattere n, i dati verranno scritti continuamente nel file di testo come 'Hello WorldHelloPython'
Produzione:
Esempio 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Il codice sopra scrive un file elenco dei dati simultaneamente nel file 'test.txt'.
Produzione:
Python Aggiungi al file
Per aggiungere dati in un file dobbiamo aprire il file in modalità 'a +' in modo da avere accesso sia alle modalità di aggiunta che a quelle di scrittura.
Esempio 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Il codice sopra aggiunge la stringa 'Apple' in fine del file 'test.txt'.
Produzione:
Esempio 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Il codice precedente aggiunge la stringa 'Apple' alla fine del file 'test.txt' in una nuova riga .
Produzione:
Esempio 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Il codice sopra aggiunge un elenco di dati in un file 'test.txt'.
Produzione:
Esempio 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)
Nel codice precedente, stiamo aggiungendo l'elenco dei dati nel file 'test.txt'. Qui puoi osservare che abbiamo usato il metodo tell () che stampa dove si trova attualmente il cursore.
seek (offset): L'offset accetta tre tipi di argomenti, ovvero 0,1 e 2.
Quando l'offset è 0: Il riferimento sarà puntato all'inizio del file.
Quando l'offset è 1: Il riferimento sarà puntato alla posizione corrente del cursore.
Quando l'offset è 2: Il riferimento sarà indicato alla fine del file.
Produzione:
Python Chiudi file
Per chiudere un file, dobbiamo prima aprire il file. In python, abbiamo un metodo integrato chiamato close () per chiudere il file che viene aperto.
Ogni volta che apri un file, è importante chiuderlo, soprattutto, con il metodo di scrittura. Perché se non chiamiamo la funzione di chiusura dopo il metodo di scrittura, tutti i dati che abbiamo scritto su un file non verranno salvati nel file.
Esempio 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Esempio 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Python Rinomina o Elimina file
Python ci fornisce un modulo 'os' che ha alcuni metodi incorporati che ci aiuterebbero a eseguire le operazioni sui file come rinominare ed eliminare il file.
Per poter utilizzare questo modulo, prima di tutto, dobbiamo importare il modulo 'os' nel nostro programma e quindi chiamare i relativi metodi.
metodo rename ():
Questo metodo rename () accetta due argomenti, ovvero il nome del file corrente e il nuovo nome del file.
Sintassi:
os.rename(current_file_name, new_file_name)
Esempio 1:
import os os.rename(“test.txt”, “test1.txt”)
Qui 'test.txt' è il nome del file corrente e 'test1.txt' è il nuovo nome del file.
È possibile specificare la posizione così come mostrato nell'esempio seguente.
Esempio 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Prima di rinominare il file:
Dopo aver eseguito il programma sopra
metodo remove ():
Utilizziamo il metodo remove () per eliminare il file fornendo il nome del file o il percorso del file che si desidera eliminare.
Sintassi:
os.remove(file_name)
Esempio 1:
import os os.remove(“test.txt”)
Qui 'test.txt' è il file che desideri rimuovere.
Allo stesso modo, possiamo passare anche la posizione del file agli argomenti come mostrato nell'esempio seguente
Esempio 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Codifica nei file
La codifica dei file rappresenta la conversione dei caratteri in un formato specifico che solo una macchina può comprendere.
Macchine diverse hanno formati di codifica diversi come mostrato di seguito.
- Utilizza il sistema operativo Microsoft Windows 'Cp1252' formato di codifica per impostazione predefinita.
- Usi del sistema operativo Linux o Unix 'Utf-8' formato di codifica per impostazione predefinita.
- Utilizza il sistema operativo MAC di Apple 'Utf-8' o 'utf-16' formato di codifica per impostazione predefinita.
Vediamo l'operazione di codifica con alcuni esempi.
Esempio 1:
oracle sql interroga esempi con risposte pdf
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()
Produzione:
Il formato di codifica di Microsoft Windows per impostazione predefinita è cp1252.
Qui, ho eseguito il mio programma sulla macchina Windows, quindi ha stampato la codifica predefinita come 'cp1252'.
Produzione:
Possiamo anche cambiare il formato di codifica di un file passandolo come argomenti alla funzione open.
Esempio 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Produzione:
Il formato di codifica del file è: cp437
Produzione:
Esempio 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Produzione:
Il formato di codifica del file è: utf-16
Produzione:
Scrittura e lettura di dati da un file binario
I file binari memorizzano i dati nel formato binario (0 e 1) comprensibile dalla macchina. Quindi, quando apriamo il file binario nella nostra macchina, decodifica i dati e li visualizza in un formato leggibile dall'uomo.
Esempio:
# Creiamo un file binario.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)
Nell'esempio sopra, per prima cosa creiamo un file binario 'Bfile.bin' con l'accesso in lettura e scrittura e qualsiasi dato che si desidera inserire nel file deve essere codificato prima di chiamare il metodo di scrittura.
Inoltre, stiamo stampando i dati senza decodificarli, in modo da poter osservare come i dati appaiono esattamente all'interno del file quando è codificato e stiamo anche stampando gli stessi dati decodificandoli in modo che possano essere leggibili dagli esseri umani.
Produzione:
Dati binari: b’Hello Python ’
Dati normali: Hello Python
Produzione:
Attributi di I / O file
Attributo | Descrizione |
---|---|
readlines () | Legge e restituisce tutte le righe del file |
Nome | Restituisce il nome del file |
Modalità | Modalità di restituzione del file |
Codifica | Restituisce il formato di codifica del file |
Chiuso | Restituisce vero se il file chiuso altrimenti restituisce falso |
Esempio:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)
Produzione:
Qual è il nome del file? C: /Documents/Python/test.txt
Qual è la modalità file? r
Qual è il formato di codifica? cp1252
Il file è chiuso? Falso
Il file è chiuso? Vero
Produzione:
Proviamo alcuni altri metodi del file.
Esempio:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()
Produzione:
Ciao Python
Ciao mondo
Buongiorno
Il file è leggibile :? Vero
Il file è scrivibile :? Vero
File n .: 3
Produzione:
Metodi di file Python
Funzione | Spiegazione |
---|---|
Aperto() | Per aprire un file |
vicino() | Chiudi un file aperto |
nessun file() | Restituisce un numero intero del file |
leggere (n) | Legge 'n' caratteri dal file fino alla fine del file |
leggibile() | Restituisce vero se il file è leggibile |
linea di lettura() | Legge e restituisce una riga dal file |
seek (offset) | Modificare la posizione del cursore in byte come specificato dall'offset |
seekable () | Restituisce vero se il file supporta l'accesso casuale |
raccontare() | Restituisce la posizione del file corrente |
scrivibile () | Restituisce vero se il file è scrivibile |
Scrivi() | Scrive una stringa di dati nel file |
writelines () | Scrive un elenco di dati nel file |
Vediamo cosa abbiamo discusso finora in un programma finale.
Esempio:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()
Produzione:
Qual è il nome del file? C: /Documents/Python/test.txt
Qual è la modalità del file? w +
Qual è il formato di codifica? cp1252
La dimensione del file è: 192
La posizione del cursore è nel byte: 36
Il contenuto del file è: Hello Python
Buongiorno
Arrivederci
I dati presenti sulla riga corrente sono: Good Bye
I dati binari sono: b ' xff xfe x00 x00G x00 x00 x00o x00 x00 x00o x00 x00 x00d x00 x00 x00 x00 x00 x00B x00 x00 x00y x00 x00 x00e x00 x00 x00 ′
I dati normali sono: Arrivederci
Produzione:
Sommario
Di seguito sono elencati alcuni suggerimenti che possono essere riassunti dal tutorial sopra:
- Di solito utilizziamo un file per archiviare i dati in modo permanente nella memoria secondaria poiché è di natura non volatile, in modo che i dati possano essere utilizzati in futuro.
- A volte in alcune applicazioni potremmo voler leggere i dati da un file di testo o un file binario, quindi possiamo ottenerlo utilizzando le funzioni integrate in Python come metodi di apertura, lettura, scrittura ecc.
- Devi stare molto attento quando usi il metodo di scrittura perché tutti i dati che scrivi nel file verranno sovrascritti ei vecchi dati andranno persi.
- Per evitare la sovrascrittura dei dati è meglio aprire un file in modalità di scrittura e aggiunta in modo che i dati vengano aggiunti alla fine del file.
- Ricorda, quando apri un file in modalità binaria non accetta il parametro di codifica.
- È possibile rinominare ed eliminare un file utilizzando i metodi rename and remove dal modulo / pacchetto 'os'.
Ci auguriamo che questo tutorial informativo sulla gestione dei file Python ti sia piaciuto. Il nostro prossimo tutorial spiegherà di più sulla funzione principale di Python.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Input-Output e file in Python (apertura, lettura e scrittura di Python su file)
- Tutorial Python DateTime con esempi
- Tutorial Python per principianti (formazione pratica GRATUITA su Python)
- Tutorial approfonditi su Eclipse per principianti
- Funzioni stringa Python
- Tutorial Python String Split
- Variabili Python
- Oggetti file VBScript: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File