Åpne en fil i Python ved hjelp av med -erklæringen

Åpne en fil i Python ved hjelp av med -erklæringen
Når det krever lagring av noen data permanent for programmeringsformålet, brukes en fil til å gjøre denne oppgaven. Generelt åpen() Funksjon brukes i Python for å åpne en fil for lesing og skriving. De åpen() Metoden returnerer et objekt for å jobbe med filen. Når noen fil åpnes av åpen() funksjon, så krever det å lukke filen. Bruker 'meduttalelse er den alternative måten å åpne en fil i Python. Det er bedre enn åpen() Funksjon og det hjelper til. Filåpningsfeilen kan håndteres også uten å prøve-bortsett fra blokken ved å bruke 'med'uttalelse.

Syntaks:

Syntaksen til 'meduttalelse for å åpne en fil for lesing og skriving har vist nedenfor.

med åpen (fil, modus) som file_handler

  • Det første argumentet er obligatorisk og inneholder filnavnet.
  • Det andre argumentet er valgfritt som brukes til å definere modus for å åpne filen for å lese eller skrive eller legge til.

Eksempel-1: Les en tekstfil ved hjelp av "med" -erklæringen

Lag en Python -fil med følgende skript som åpner en tekstfil ved å bruke 'med'uttalelse. Her, The temp.tekst filen vil bli åpnet for lesing og ReadLines () Funksjon vil bli brukt til å lese innholdet i filen og lagre den i en listevariabel. Deretter vil for -loopen iterere listeverdiene og skrive ut filinnholdet. De lukket attributt vil være ekte Etter å ha lest innholdet i filen.

#Åpne en fil for lesing ved hjelp av 'med' uttalelse
med åpent ('salg.txt ') som FH:
#Read fillinje for linje og lagre i en liste
data = fh.ReadLines ()
#Interate listen og skriv ut hver verdi
for verdi i data:
print (verdi, slutt = ")
#Sjekk filen er lukket eller ikke
Hvis fh.lukket:
skrive ut ("\ n filen er lukket.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor hvis Salg.tekst filen eksisterer på det nåværende stedet. Utgangen viser at filen er lukket automatisk etter å ha fullført avlesningen av filen.

Eksempel-2: Les en binær fil ved å bruke "med" uttalelsen

Lag en Python -fil med følgende skript som åpner en binær fil for å lese og beregne størrelsen på filen i byte. Filnavnet vil bli hentet fra brukeren.

#Import OS -modul
Importer OS
#Ta filnavnet fra brukeren
filnavn = input ("Skriv inn et bildenavn:")
#Sjekk filnavnet eksisterer eller ikke
Hvis OS.sti.eksisterer (filnavn):
#Åpne filnavnet for lesing
med åpen (filnavn, 'rb') som img:
#Initialiser telleren
teller = 0
#LEAD FIL -innholdet
Mens IMG.Les (sant):
#Increment disken
teller += 1
Skriv ut ("Størrelsen på bildefilen er: %d byte." %disk)
ellers:
Skriv ut ("Filen eksisterer ikke.")

Produksjon:

Følgende lignende utdata vises etter å ha utført skriptet ovenfor hvis fugl.JPEG filen eksisterer på det nåværende stedet. Utgangen viser at størrelsen på filen er 9946 byte.

Eksempel-3: Bruk av nestet 'med' uttalelser

Lag en Python -fil med følgende skript som åpner en fil for å lese og åpne en annen fil for å skrive ved å bruke den nestede 'med' uttalelser. Den første 'meduttalelse brukes til å åpne ukedag.tekst fil for lesing som er opprettet før. Den andre 'meduttalelse brukes til å åpne ferien.tekst fil for å skrive det spesifikke innholdet fra ukedag.tekst fil.

#Åpne en fil for lesing
med åpen ('ukedag.txt ',' r ') som fh_in:
#Åpne en fil for skriving
med åpen ('ferie.txt ',' w ') som fh_out:
# Les fillinje for linje og lagre i en liste
data = fh_in.ReadLines ()
for val i data:
#Sjekk tilstanden før du skriver
Hvis Val.strip () == 'lørdag' eller val.strip () == 'søndag':
fh_out.Skriv (val)
trykk ("Ferier er: \ n")
#Åpne den nyopprettede filen for lesing
med åpen ('ferie.txt ',' r ') som fh:
# Les fillinje for linje og lagre i en liste
data = fh.ReadLines ()
for val i data:
trykk (val)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-4: Åpne flere filer i en enkelt 'med' uttalelse

Lag en Python -fil med følgende skript som åpner to filer for å skrive ved å bruke en enkelt 'med'uttalelse. Manuset åpner ukedag.tekst fil for lesing og noe spesifikt innhold i denne filen vil bli skrevet i OUT1.tekst fil og ut2.tekst fil. Deretter vil begge nyskrevne filene bli åpnet for lesing, og innholdet i disse filene vil bli skrevet ut.

#Åpne to filer for skriving
med åpen ('out1.txt ',' w ') som fh1, åpen (' out2.txt ',' w ') som fh2:
# Åpne en fil for lesing
med åpen ('ukedag.txt ',' r ') som fh_in:
# Les fillinje for linje og lagre i en liste
data = fh_in.ReadLines ()
for val i data:
#Sjekk tilstanden før du skriver
Hvis Val.strip () == 'lørdag' eller val.strip () == 'søndag':
FH2.Skriv (val)
ellers:
FH1.Skriv (val)
#Åpne to nyskrevne filer for lesing
med åpen ('out1.txt ',' r ') som fh1, åpen (' out2.txt ',' r ') som fh2:
trykk (FH1.ReadLines ())
trykk (FH2.ReadLines ())

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-5: Sammenlign 'med' uttalelse med åpen () funksjon og åpen () -funksjon

Lag en Python -fil med følgende skript som åpner den samme filen som heter ukedag.tekst ved å bruke 'med'uttalelse og åpen() funksjon. Det er vist i forrige eksempel at filen er lukket automatisk etter å ha lest eller skrevet innholdet, hvis den åpnes ved å bruke 'med'uttalelse. Men filen krever å avslutte ved bruk lukk () funksjon, hvis filen åpnes ved å bruke det åpne () Funksjon som ble vist ved å bruke prøve-finalt blokkering i dette skriptet.

# Erklære en funksjon for å sjekke at filen er lukket eller ikke
def sjekk (f):
Hvis f.lukket:
trykk ("Filen er lukket.")
ellers:
skriv ut ("Filen har ikke lukket seg ennå.")
# Åpne en fil for lesing ved å bruke "med" -erklæringen
med åpen ('ukedag.txt ') som FH:
data = fh.lese()
# Ring sjekk () -funksjonen
Sjekk (FH)
# Åpne en fil for lesing ved å bruke Open () -funksjon
FH = åpen ('ukedag.tekst')
prøve:
data = fh.lese()
# Ring sjekk () -funksjonen
Sjekk (FH)
endelig:
fh.Lukk()
# Ring sjekk () -funksjonen
Sjekk (FH)

Produksjon:


Følgende utgang vises etter å ha utført skriptet ovenfor.

Konklusjon

Forskjellige bruksområder av 'medUttalelse for å åpne en fil for lesing eller skriving er vist i denne opplæringen ved å bruke enkle eksempler som vil hjelpe Python -brukerne til å kjenne formålene med å bruke 'med'uttalelse i Python.