Com comprovar que un fitxer està obert o tancat a Python

How Check File Is Opened



El fitxer s’utilitza per emmagatzemar dades de forma permanent. Treballar amb un fitxer és una tasca molt habitual de qualsevol llenguatge de programació. Hi ha moltes funcions integrades a Python per crear, obrir, llegir, escriure i tancar el fitxer. Es poden crear dos tipus de fitxers per emmagatzemar dades. Es tracta de fitxers de text i fitxers binaris. Cal obrir qualsevol fitxer abans de llegir o escriure. El open () La funció s'utilitza a Python per obrir un fitxer. Utilitzant el open () La funció és una manera de comprovar que un fitxer concret està obert o tancat. Si el fitxer open () La funció obre un fitxer obert prèviament i després un fitxer IOError es generarà. Una altra manera de comprovar que un fitxer està obert o tancat és comprovar els valors del fitxer tancat propietat de l'objecte gestor de fitxers. Utilitzant canviar el nom () La funció és una altra manera de comprovar que el fitxer està obert o tancat. En aquest tutorial s'han mostrat diferents maneres de comprovar que qualsevol fitxer està obert o tancat a Python.

Creeu un fitxer per comprovar:

Podeu utilitzar qualsevol fitxer existent o crear-ne un de nou per provar l'exemple de codi que es mostra en aquest tutorial. S'ha anomenat un fitxer de text nou clients.txt s'ha creat amb el contingut següent per utilitzar-lo més endavant a la següent part del tutorial.







Nom d'identificació correu electrònic
01 Jony Liver [correu electrònic protegit]
02 Manik Hossain [correu electrònic protegit]
03 Neha Akter [correu electrònic protegit]
04 Janatul Ferdous [correu electrònic protegit]
05 Helal Uddin [correu electrònic protegit]



Exemple-1: comproveu que el fitxer està obert o no mitjançant IOError

IOError es genera quan es crida la funció open () per obrir un fitxer que s'ha obert abans. Creeu un fitxer python amb el següent script per comprovar que un fitxer està obert o no mitjançant provar-excepte bloc. Aquí, qualsevol nom de fitxer existent es prendrà com a entrada i s’obrirà per a la lectura. A continuació, es torna a cridar a la funció open () per obrir el mateix fitxer que generarà un IOError i imprimirà el missatge d'error.



# Agafeu el nom del fitxer per comprovar-ho
nom de fitxer = entrada('Introduïu qualsevol nom de fitxer existent: n')
# Obriu el fitxer per primera vegada amb la funció open ()
fileHandler = obert(nom de l'arxiu,'r')
# Intenteu tornar a obrir el mateix fitxer
provar:
amb obert('nom de l'arxiu','r') comdossier:
# Imprimiu el missatge d'èxit
imprimir('S'ha obert el fitxer per llegir.')
# Augmenteu l'error si el fitxer s'obre abans
excepte IOError:
imprimir('El fitxer ja s'ha obert.')

Sortida:

La següent sortida apareixerà després d'executar l'script anterior. Aquí, clients.txt existeix a la ubicació actual i el missatge d'error, El fitxer ja s'ha obert, ha imprès per al IOError excepció.





Exemple-2: comproveu que el fitxer està tancat o no mitjançant la propietat tancada.

El valor del fitxer tancat la propietat serà certa si es tanca qualsevol fitxer. Creeu un fitxer python amb el següent script per comprovar que un fitxer està tancat o no que existeix a la ubicació actual. L'exemple de script anterior generarà un error si el nom de fitxer pres de l'usuari no existeix a la ubicació actual. Aquest problema s'ha resolt en aquest exemple. El vostè El mòdul s'utilitza aquí per comprovar l'existència del nom de fitxer que es prendrà de l'usuari. La funció check_closed () s'ha definit per comprovar que el fitxer està tancat o no, que es cridarà si existeix el fitxer.



# Importa el mòdul OS per comprovar l'existència del fitxer
importació
# Funció Drfine comproveu que el fitxer està tancat o no
def xec_tancat():
sifileHandler.closed == Fals:
# Imprimiu el missatge d'èxit
imprimir('S'ha obert el fitxer per llegir.')
en cas contrari:
# Imprimiu el missatge d'error
imprimir('El fitxer s'ha tancat.')

# Agafeu el nom del fitxer per comprovar-ho
nom de fitxer = entrada('Introduïu qualsevol nom de fitxer existent: n')
# Comproveu que el fitxer existeix o no
sios.path.exists(nom de l'arxiu):
# Obriu el fitxer per llegir-lo
fileHandler = obert(nom de l'arxiu,'r')
# Truqueu a la funció
comprovar_tancat()
en cas contrari:
# Imprimiu el missatge si el fitxer no existeix
imprimir('L'arxiu no existeix.')

Sortida:

La següent sortida apareixerà després d'executar l'script anterior. Aquí, clients.txt existeix a la ubicació actual i el missatge d’èxit, S'ha obert el fitxer per llegir, s'ha imprès perquè s'ha retornat el valor de la propietat tancada Fals .

Exemple-3: comproveu que el fitxer està obert o no mitjançant OSError

El OSError es genera quan la funció rename () es diu més d'una vegada per a un fitxer que ja està obert. Creeu un fitxer Python amb el següent script per comprovar que s’obre o tanca un fitxer mitjançant OSError . El mòdul os s’ha utilitzat a l’script per comprovar l’existència del fitxer i canviar el nom del fitxer. Quan el canviar el nom () funció es crida per segona vegada, es generarà OSError i s’imprimirà el missatge d’error personalitzat.

# Importa el mòdul OS per comprovar l'existència del fitxer
importació
# Establiu el nom de fitxer existent
nom del fitxer ='clients.txt'
# Definiu el nom de fitxer nou
nom nou ='clients.txt'
# Comproveu que el fitxer existeix o no
sios.path.exists(nom de l'arxiu):
provar:
# Truqueu a la funció de canvi de nom per primera vegada
os.rename(nom de fitxer, nom nou)
# Truqueu a la funció de canvi de nom per segona vegada
os.rename(nom de fitxer, nom nou)
# Augmenteu l'error si el fitxer s'ha obert
excepte OSError:
imprimir('El fitxer encara està obert.')

en cas contrari:
# Imprimiu el missatge si el fitxer no existeix
imprimir('L'arxiu no existeix.')

Sortida:

La següent sortida apareixerà després d'executar l'script anterior. Aquí, clients.txt existeix a la ubicació actual i el missatge d'error, El fitxer encara està obert, ha imprès perquè el fitxer OSError excepció s'ha generat quan la segona canviar el nom () s'ha executat la funció.

Conclusió:

Quan hem de treballar amb el mateix fitxer diverses vegades en un script, és essencial saber si el fitxer està obert o tancat. És millor trucar a la funció close () per tancar el fitxer després de completar l’operació del fitxer. L'error es produeix quan s'obre un fitxer per segona vegada al mateix script sense tancar-lo. En aquest tutorial s’han mostrat diferents solucions a aquest problema mitjançant l’ús d’exemples senzills per ajudar els usuaris de Python.