Kaip patikrinti, ar failas atidarytas ar uždarytas „Python“

How Check File Is Opened



Failas naudojamas duomenims nuolat saugoti. Darbas su failais yra labai dažna bet kurios programavimo kalbos užduotis. „Python“ yra daug integruotų funkcijų, skirtų failui kurti, atidaryti, skaityti, rašyti ir uždaryti. Duomenims saugoti galima sukurti dviejų tipų failus. Tai tekstiniai ir dvejetainiai failai. Bet kurį failą reikia atidaryti prieš skaitant ar rašant. The atviras() Ši funkcija naudojama „Python“ failui atidaryti. Naudojant atviras() funkcija yra vienas iš būdų patikrinti, ar tam tikras failas atidarytas ar uždarytas. Jei atviras() funkcija atveria anksčiau atidarytą failą, tada an IOError bus sugeneruotas. Kitas būdas patikrinti, ar failas atidarytas ar uždarytas, yra patikrinti failo reikšmes uždaryta failų tvarkyklės objekto savybė. Naudojant pervadinti () funkcija yra dar vienas būdas patikrinti, ar failas atidarytas ar uždarytas. Šioje pamokoje buvo parodyti įvairūs būdai, kaip patikrinti, ar failas atidarytas ar uždarytas „Python“.

Sukurkite failą patikrinimui:

Galite naudoti bet kurį esamą failą arba sukurti naują failą, kad išbandytumėte šioje pamokoje parodytą kodo pavyzdį. Naujas tekstinis failas pavadintas klientai.txt buvo sukurtas naudojant šį turinį, kuris bus naudojamas vėliau kitoje mokymo programos dalyje.







ID Vardas El. Paštas
01 Jony Liver [apsaugotas el. Paštas]
02 Manikas Hossainas [apsaugotas el. Paštas]
03 Neha Akter [apsaugotas el. Paštas]
04 Janatul Ferdous [apsaugotas el. Paštas]
05 Helal Uddin [apsaugotas el. Paštas]



1 pavyzdys: patikrinkite, ar failas atidarytas, ar ne, naudodami „IOError“

IOError generuoja, kai iškviečiama funkcija open (), kad būtų atidarytas failas, kuris buvo atidarytas anksčiau. Sukurkite „Python“ failą naudodami šį scenarijų, kad patikrintumėte, ar failas atidarytas, ar ne naudojant pabandykite-išskyrus blokuoti. Čia bet koks esamas failo vardas bus laikomas įvestimi ir atidarytas skaitymui. Tada funkcija open () vėl iškviečiama, kad būtų atidarytas tas pats failas, kuris iškels „IOError“ ir išspausdins klaidos pranešimą.



# Paimkite failo pavadinimą, kad patikrintumėte
failo pavadinimas = įvestis(„Įveskite bet kokį esamą failo pavadinimą: n')
# Pirmą kartą atidarykite failą naudodami funkciją open ()
fileHandler = atidaryti(failo pavadinimas,„r“)
# Pabandykite dar kartą atidaryti tą patį failą
bandyti:
su atvira('failo pavadinimas',„r“) kaipfailas:
# Atspausdinkite sėkmės pranešimą
spausdinti(„Failas atidarytas skaitymui“.)
# Padidinkite klaidą, jei failas buvo atidarytas anksčiau
išskyrus IOError:
spausdinti(„Failas jau atidarytas“.)

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis. Čia, klientai.txt yra dabartinėje vietoje, ir klaidos pranešimas, Failas jau atidarytas, atspausdino IOError išimtis.





2 pavyzdys: patikrinkite, ar failas uždarytas, ar ne, naudodami uždarą ypatybę.

Vertė uždaryta nuosavybė bus teisinga, jei koks nors failas bus uždarytas. Sukurkite „Python“ failą naudodami šį scenarijų, kad patikrintumėte, ar failas yra uždarytas, ar ne, esantis dabartinėje vietoje. Ankstesnis scenarijaus pavyzdys sukels klaidą, jei failo pavadinimas, paimtas iš vartotojo, neegzistuoja dabartinėje vietoje. Ši problema išspręsta šiame pavyzdyje. The tu modulis čia naudojamas patikrinti failo pavadinimą, kuris bus paimtas iš vartotojo. Funkcija check_closed () nustatė patikrinti, ar failas uždarytas, ar ne, kuris bus iškviestas, jei failas yra.



# Importuokite OS modulį, kad patikrintumėte, ar yra failas
importas
# „Drfine“ funkcija patikrinkite, ar failas uždarytas, ar ne
def check_closed():
jeifileHandler.closed == Netiesa:
# Atspausdinkite sėkmės pranešimą
spausdinti(„Failas atidarytas skaitymui“.)
Kitas:
# Atspausdinkite klaidos pranešimą
spausdinti(„Failas uždarytas“.)

# Paimkite failo pavadinimą, kad patikrintumėte
failo pavadinimas = įvestis(„Įveskite bet kokį esamą failo pavadinimą: n')
# Patikrinkite, ar failas yra, ar ne
jeios.path.exist(failo pavadinimas):
# Atidarykite failą skaitymui
fileHandler = atidaryti(failo pavadinimas,„r“)
# Skambinkite funkcijai
check_closed()
Kitas:
# Spausdinkite pranešimą, jei failo nėra
spausdinti('Failas neegzistuoja.')

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis. Čia, klientai.txt egzistuoja dabartinėje vietoje, o sėkmės pranešimas, Failas atidarytas skaitymui, išspausdino, nes grąžinta uždaro turto vertė Netiesa .

3 pavyzdys: naudodami OSError patikrinkite, ar failas atidarytas, ar ne

The OS klaida generuoja, kai funkcija rename () yra iškviesta daugiau nei vieną kartą jau atidarytam failui. Sukurkite „Python“ failą naudodami šį scenarijų, kad patikrintumėte, ar failas atidarytas ar uždarytas naudojant OS klaida . Os modulis buvo naudojamas scenarijuje, siekiant patikrinti failo egzistavimą ir pervardyti failą. Kai pervadinti () funkcija iškviečiama antrą kartą, OSError bus sugeneruota ir pasirinktinis klaidos pranešimas bus išspausdintas.

# Importuokite OS modulį, kad patikrintumėte, ar yra failas
importas
# Nustatykite esamą failo pavadinimą
failo pavadinimas =„customers.txt“
# Nustatykite naują failo pavadinimą
naujas vardas =„customers.txt“
# Patikrinkite, ar failas yra, ar ne
jeios.path.exist(failo pavadinimas):
bandyti:
# Pirmą kartą iškvieskite pervadinimo funkciją
os.pavadinimas(failo pavadinimas, naujas vardas)
# Antrą kartą iškvieskite pervadinimo funkciją
os.pavadinimas(failo pavadinimas, naujas vardas)
# Padidinkite klaidą, jei failas buvo atidarytas
išskyrus OS klaidą:
spausdinti('Failas vis dar atidarytas.')

Kitas:
# Spausdinkite pranešimą, jei failo nėra
spausdinti('Failas neegzistuoja.')

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis. Čia, klientai.txt yra dabartinėje vietoje, ir klaidos pranešimas, Failas vis dar atidarytas, atspausdino, nes OS klaida išimtis atsirado, kai antrasis pervadinti () funkcija buvo įvykdyta.

Išvada:

Kai scenarijuje reikia dirbti su tuo pačiu failu kelis kartus, būtina žinoti, ar failas atidarytas, ar uždarytas. Užbaigus failo operaciją, geriau iškviesti funkciją close (), kad uždarytumėte failą. Klaida atsiranda, kai failas antrą kartą atidaromas tame pačiame scenarijuje jo neuždarius. Šioje pamokoje buvo parodyti įvairūs šios problemos sprendimai, naudojant paprastus pavyzdžius, kurie padėtų „python“ vartotojams.