A fájlok megnyitásának vagy bezárásának ellenőrzése a Pythonban

How Check File Is Opened



A fájl az adatok végleges tárolására szolgál. A fájlokkal való munka minden programozási nyelv nagyon gyakori feladata. A Pythonban számos beépített funkció létezik a fájl létrehozásához, megnyitásához, olvasásához, írásához és bezárásához. Kétféle fájl hozható létre az adatok tárolására. Ezek szöveges és bináris fájlok. Bármilyen fájlt meg kell nyitni olvasás vagy írás előtt. Az nyisd ki() funkciót használja a Python fájl megnyitásához. Használni a nyisd ki() A funkció az egyik módja annak, hogy ellenőrizze, hogy egy adott fájl nyitva vagy zárva van -e. Ha a nyisd ki() függvény megnyit egy korábban megnyitott fájlt, majd egy IOError generálódik. A fájl megnyitásának vagy bezárásának másik módja a fájl értékeinek ellenőrzése zárva a fájlkezelő objektum tulajdonsága. Használata átnevezés () funkció egy másik módja annak, hogy ellenőrizze a fájl megnyitását vagy bezárását. Ebben az oktatóanyagban különböző módszerek láthatók a Pythonban megnyitott vagy bezárt fájlok ellenőrzésére.

Hozzon létre egy fájlt az ellenőrzéshez:

Bármely meglévő fájlt használhat, vagy új fájlt hozhat létre az oktatóanyagban bemutatott példakód teszteléséhez. Egy új szövegfájl ügyfelek.txt a következő tartalommal készült, amelyet később használhat az oktatóanyag következő részében.







Azonosító neve E -mail
01 Jony Liver [email protected]
02 Manik Hossain [email protected]
03 Neha Akter [email protected]
04 Janatul Ferdous [email protected]
05 Helal Uddin [email protected]



1. példa: Ellenőrizze, hogy a fájl megnyílt-e vagy sem az IOError használatával

IOError generál, amikor az open () függvényt meghívják egy korábban megnyitott fájl megnyitásához. Hozzon létre egy python -fájlt a következő parancsfájllal annak ellenőrzésére, hogy a fájl megnyílik -e vagy sem a használatával próbáld-kivéve Blokk. Itt minden létező fájlnév bemenetnek számít és olvasásra nyílik meg. Ezután az open () függvény újra meghívásra kerül, hogy ugyanazt a fájlt nyissa meg, amely IOError -t hoz létre és kinyomtatja a hibaüzenetet.



# Vizsgálja meg a fájlnevet
fájlnév = bemenet('Írja be a meglévő fájlnevet: n')
# Nyissa meg a fájlt először az open () függvénnyel
fileHandler = megnyitva(fájl név,'r')
# Próbálja meg újra megnyitni ugyanazt a fájlt
próbáld ki:
nyitottal('fájl név','r') mintfájl:
# Nyomtassa ki a sikeres üzenetet
nyomtatás('A fájl megnyílt olvasásra.')
# Növelje a hibát, ha a fájlt korábban megnyitotta
kivéve IOError:
nyomtatás('A fájl már megnyílt.')

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után. Itt, ügyfelek.txt létezik az aktuális helyen, és a hibaüzenet, A fájl már megnyílt, nyomtatott a IOError kivétel.





2. példa: A zárt tulajdonság használatával ellenőrizze, hogy a fájl zárt-e vagy sem.

Az értéke zárva a tulajdonság igaz lesz, ha bármelyik fájlt bezárják. Hozzon létre egy python fájlt a következő parancsfájllal annak ellenőrzésére, hogy a fájl bezárva van -e, vagy nem létezik az aktuális helyen. Az előző példa szkript hibát generál, ha a felhasználótól vett fájlnév nem létezik az aktuális helyen. Ez a probléma ebben a példában megoldódott. Az te modul itt használható a felhasználótól átvett fájlnév meglétének ellenőrzésére. A check_closed () függvény úgy határozott meg, hogy ellenőrizze, hogy a fájl zárva van -e vagy sem, és a rendszer meghívja, ha a fájl létezik.



# Importálja az os modult, hogy ellenőrizze a fájl létezését
import
# A Drfine funkció ellenőrzi, hogy a fájl zárva van -e vagy sem
def check_closed():
hafileHandler.closed == Hamis:
# Nyomtassa ki a sikeres üzenetet
nyomtatás('A fájl megnyílt olvasásra.')
más:
# Nyomtassa ki a hibaüzenetet
nyomtatás('A fájl bezárult.')

# Vizsgálja meg a fájlnevet
fájlnév = bemenet('Írja be a meglévő fájlnevet: n')
# Ellenőrizze, hogy a fájl létezik -e vagy sem
haos.path.exist(fájl név):
# Nyissa meg a fájlt olvasásra
fileHandler = megnyitva(fájl név,'r')
# Hívja fel a funkciót
check_closed()
más:
# Nyomtassa ki az üzenetet, ha a fájl nem létezik
nyomtatás('A fájl nem létezik.')

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után. Itt, ügyfelek.txt létezik az aktuális helyen, és a sikerüzenet, A fájl megnyílt olvasásra, nyomtatott, mert a lezárt ingatlan értéke visszajött Hamis .

3. példa: Ellenőrizze, hogy a fájl megnyílt-e vagy sem az OSError használatával

Az OSError generál, ha a rename () függvényt többször is meghívják egy már megnyitott fájlhoz. Hozzon létre egy python -fájlt a következő parancsfájllal, és ellenőrizze, hogy a fájl megnyitásakor vagy bezárásakor a OSError . A szkriptben az os modult használták a fájl létezésének ellenőrzésére és a fájl átnevezésére. Amikor az átnevezés () funkciót másodszor hívják meg, az OSError generálódik, és az egyéni hibaüzenet kinyomtatásra kerül.

# Importálja az os modult, hogy ellenőrizze a fájl létezését
import
# Állítsa be a meglévő fájlnevet
fájlnév ='customers.txt'
# Állítsa be az új fájlnevet
új név ='customers.txt'
# Ellenőrizze, hogy a fájl létezik -e vagy sem
haos.path.exist(fájl név):
próbáld ki:
# Hívja fel először az átnevezési funkciót
os.név(fájlnév, új név)
# Hívja meg másodszor az átnevezési funkciót
os.név(fájlnév, új név)
# Növelje a hibát, ha a fájl megnyílt
kivéve OSError:
nyomtatás('A fájl még nyitva van.')

más:
# Nyomtassa ki az üzenetet, ha a fájl nem létezik
nyomtatás('A fájl nem létezik.')

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után. Itt, ügyfelek.txt létezik az aktuális helyen, és a hibaüzenet, A fájl még nyitva van, nyomtatott, mert a OSError kivétel keletkezett, amikor a második átnevezés () funkció végrehajtva.

Következtetés:

Ha ugyanazzal a fájllal többször kell dolgoznunk egy szkriptben, elengedhetetlen tudni, hogy a fájl megnyílik vagy bezáródik. A fájlművelet befejezése után jobb, ha meghívja a close () függvényt a fájl bezárásához. A hiba akkor fordul elő, amikor egy fájlt másodszor is megnyitnak ugyanabban a szkriptben anélkül, hogy bezárnák. Ebben a bemutatóban különböző megoldásokat mutattak be a problémára, egyszerű példák segítségével segítve a python felhasználóit.