Come verificare che un file sia aperto o chiuso in Python

How Check File Is Opened

Il file viene utilizzato per memorizzare i dati in modo permanente. Lavorare con un file è un compito molto comune di qualsiasi linguaggio di programmazione. Esistono molte funzioni integrate in Python per creare, aprire, leggere, scrivere e chiudere il file. È possibile creare due tipi di file per memorizzare i dati. Questi sono file di testo e file binari. Qualsiasi file deve essere aperto prima di leggere o scrivere. Il aprire() la funzione viene utilizzata in Python per aprire un file. Usando il aprire() la funzione è un modo per verificare che un determinato file sia aperto o chiuso. Se la aprire() la funzione apre un file precedentemente aperto, quindi un IOError sarà generato. Un altro modo per controllare che un file sia aperto o chiuso è controllare i valori di Chiuso proprietà dell'oggetto gestore di file. Usando rinominare() la funzione è un altro modo per verificare che il file sia aperto o chiuso. In questo tutorial sono stati mostrati diversi modi per verificare che qualsiasi file sia aperto o chiuso in Python.

Crea un file per controllare:

Puoi utilizzare qualsiasi file esistente o creare un nuovo file per testare il codice di esempio mostrato in questo tutorial. Un nuovo file di testo chiamato client.txt è stato creato con il seguente contenuto da utilizzare in seguito nella parte successiva del tutorial.



ID Nome Email
01 Jony Liver [e-mail protetta]
02 Manik Hossain [e-mail protetta]
03 Neha Akter [e-mail protetta]
04 Janatul Ferdous [e-mail protetta]
05 Helal Uddin [e-mail protetta]



Esempio 1: verificare che il file sia aperto o meno utilizzando IOError

IOError genera quando viene chiamata la funzione open() per aprire un file che è stato aperto in precedenza. Crea un file python con il seguente script per verificare che un file sia aperto o meno usando prova-tranne bloccare. Qui, qualsiasi nome di file esistente verrà preso come input e aperto per la lettura. Successivamente, la funzione open() viene chiamata di nuovo per aprire lo stesso file che genererà un IOError e stamperà il messaggio di errore.



# Prendi il nome del file per controllare
nome file = input('Inserisci un nome di file esistente: ')
# Apri il file per la prima volta usando la funzione open()
fileHandler = aperto(nome del file,'R')
# Prova ad aprire di nuovo il file stesso file
Tentativo:
con aperto('nome del file','R') comefile:
# Stampa il messaggio di successo
Stampa('Il file è stato aperto per la lettura.')
# Genera errore se il file viene aperto prima
tranne IOError:
Stampa('Il file è già stato aperto.')

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra. Qui, client.txt esiste nella posizione corrente e il messaggio di errore, Il file è già stato aperto, ha stampato per il IOError eccezione.

Esempio 2: verificare che il file sia chiuso o meno utilizzando la proprietà closed.

Il valore di Chiuso la proprietà sarà vera se un file viene chiuso. Crea un file python con il seguente script per verificare che un file sia chiuso o meno che esista nella posizione corrente. Lo script di esempio precedente genererà un errore se il nome del file preso dall'utente non esiste nella posizione corrente. Questo problema è stato risolto in questo esempio. Il tu modulo viene utilizzato qui per verificare l'esistenza del nome del file che verrà preso dall'utente. La funzione check_closed() ha definito per verificare che il file sia chiuso o meno che verrà chiamato se il file esiste.



# Importa il modulo os per verificare l'esistenza del file
importare
# La funzione Drfine controlla che il file sia chiuso o meno
def check_closed():
SefileHandler.closed == Falso:
# Stampa il messaggio di successo
Stampa('Il file è stato aperto per la lettura.')
altro:
# Stampa il messaggio di errore
Stampa('Il file è stato chiuso.')

# Prendi il nome del file per controllare
nome file = input('Inserisci un nome di file esistente: ')
# Controlla che il file esista o meno
Seos.path.exists(nome del file):
# Apri il file per la lettura
fileHandler = aperto(nome del file,'R')
# Chiama la funzione
check_closed()
altro:
# Stampa il messaggio se il file non esiste
Stampa('Il file non esiste.')

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra. Qui, client.txt esiste nella posizione corrente e il messaggio di successo, Il file è stato aperto per la lettura, è stato stampato perché è stato restituito il valore della proprietà chiusa falso .

Esempio 3: verifica che il file sia aperto o meno utilizzando OSError

Il OErrore genera quando la funzione rename() viene chiamata più di una volta per un file che è già aperto. Crea un file python con il seguente script per verificare che un file sia aperto o chiuso usando OErrore . Il modulo os è stato utilizzato nello script per verificare l'esistenza del file e rinominare il file. Quando il rinominare() la funzione viene chiamata per la seconda volta, verrà generato OSError e verrà stampato il messaggio di errore personalizzato.

# Importa il modulo os per verificare l'esistenza del file
importare
# Imposta il nome del file esistente
nome file ='clienti.txt'
# Imposta il nuovo nome del file
nuovo nome ='clienti.txt'
# Controlla che il file esista o meno
Seos.path.exists(nome del file):
Tentativo:
# Richiama la funzione di rinomina per la prima volta
os.rename(nome file, nuovo nome)
# Richiama la funzione di ridenominazione per la seconda volta
os.rename(nome file, nuovo nome)
# Genera errore se il file è stato aperto
tranne OSErrore:
Stampa('Il file è ancora aperto.')

altro:
# Stampa il messaggio se il file non esiste
Stampa('Il file non esiste.')

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra. Qui, client.txt esiste nella posizione corrente e il messaggio di errore, Il file è ancora aperto, ha stampato perché il OErrore l'eccezione si è generata quando il secondo rinominare() la funzione è stata eseguita.

Conclusione:

Quando abbiamo bisogno di lavorare con lo stesso file più volte in uno script, è essenziale sapere se il file è aperto o chiuso. È meglio chiamare la funzione close() per chiudere il file dopo aver completato l'operazione sul file. L'errore si verifica quando un file viene aperto per la seconda volta nello stesso script senza chiuderlo. Diverse soluzioni a questo problema sono state mostrate in questo tutorial usando semplici esempi per aiutare gli utenti Python.