Filhåndtering i Python er et kraftig og allsidig verktøy som kan brukes til å utføre et bredt spekter av operasjoner. Det er imidlertid viktig å nøye vurdere fordelene og ulempene ved filhåndtering når du skriver Python-programmer, for å sikre at koden er sikker, pålitelig og gir god ytelse.
I denne artikkelen vil vi utforske Python-filhåndtering, fordeler, ulemper og hvordan åpne, skrive og legge til funksjoner fungerer i python-fil.
Python-filhåndtering
Python støtter filhåndtering og lar brukere håndtere filer, dvs. lese og skrive filer, sammen med mange andre filhåndteringsalternativer, for å operere på filer. Konseptet med filhåndtering har strukket seg over forskjellige andre språk, men implementeringen er enten komplisert eller langvarig, som andre konsepter av Python, er dette konseptet her også enkelt og kort. Python behandler filer forskjellig som tekst eller binær, og dette er viktig. Hver kodelinje inneholder en sekvens av tegn, og de danner en tekstfil. Hver linje i en fil avsluttes med et spesialtegn, kalt EOL eller End of Line karakterer som komma {,} eller nylinjekarakter. Den avslutter gjeldende linje og forteller tolken at en ny har begynt. La oss starte med lese- og skrivefilene.
Fordeler med filhåndtering i Python
- Allsidighet : Filhåndtering i Python lar deg utføre et bredt spekter av operasjoner, som å lage, lese, skrive, legge til, gi nytt navn og slette filer.
- Fleksibilitet : Filhåndtering i Python er svært fleksibel, da den lar deg jobbe med forskjellige filtyper (f.eks. tekstfiler, binære filer, CSV-filer , etc.), og for å utføre forskjellige operasjoner på filer (f.eks. lese, skrive, legge til, etc.).
- Bruker – vennlig : Python gir et brukervennlig grensesnitt for filhåndtering, noe som gjør det enkelt å lage, lese og manipulere filer.
- Kryssplattform : Python-filhåndteringsfunksjoner fungerer på tvers av forskjellige plattformer (f.eks. Windows, Mac, Linux), noe som muliggjør sømløs integrasjon og kompatibilitet.
Ulemper med filhåndtering i Python
- Utsatt for feil: Filhåndteringsoperasjoner i Python kan være utsatt for feil, spesielt hvis koden ikke er nøye skrevet eller hvis det er problemer med filsystemet (f.eks. filtillatelser, fillåser osv.).
- Sikkerhetsrisikoer : Filhåndtering i Python kan også utgjøre sikkerhetsrisikoer, spesielt hvis programmet godtar brukerinndata som kan brukes til å få tilgang til eller endre sensitive filer på systemet.
- Kompleksitet : Filhåndtering i Python kan være kompleks, spesielt når du arbeider med mer avanserte filformater eller operasjoner. Nøye oppmerksomhet må rettes mot koden for å sikre at filene håndteres riktig og sikkert.
- Opptreden : Filhåndteringsoperasjoner i Python kan være tregere enn andre programmeringsspråk, spesielt når du arbeider med store filer eller utfører komplekse operasjoner.
For denne artikkelen vil vi vurdere følgende geeks.txt fil som eksempel.
Hello world techcodeview.com 123 456>
Python-fil åpnes
Før du utfører noen operasjon på filen som å lese eller skrive, må vi først åpne den filen. For dette bør vi bruke Pythons innebygde funksjon åpen() men på tidspunktet for åpningen må vi spesifisere modusen, som representerer formålet med åpningsfilen.
f = open(filename, mode)>
Der følgende modus støttes:
- r: åpne en eksisterende fil for en leseoperasjon.
- I: åpne en eksisterende fil for en skriveoperasjon. Hvis filen allerede inneholder noen data, vil den bli overstyrt, men hvis filen ikke er til stede, oppretter den filen også.
- en: åpne en eksisterende fil for å legge til operasjon. Det vil ikke overstyre eksisterende data.
- r+: For å lese og skrive data inn i filen. De tidligere dataene i filen vil bli overstyrt.
- w+: Å skrive og lese data. Den vil overstyre eksisterende data.
- a+: For å legge til og lese data fra filen. Det vil ikke overstyre eksisterende data.
Arbeider i lesemodus
Det er mer enn én måte å Hvordan lese fra en fil i Python . La oss se hvordan vi kan lese innholdet i en fil i lesemodus.
java dynamisk array
Eksempel 1: Åpne-kommandoen vil åpne Python-filen i lesemodus og for-løkken vil skrive ut hver linje som er tilstede i filen.
Python3
# a file named 'geek', will be opened with the reading mode.> file> => open>(>'geek.txt'>,>'r'>)> # This will print every line one by one in the file> for> each>in> file>:> >print> (each)> |
>
>
Produksjon:
Hello world techcodeview.com 123 456>
Eksempel 2: I dette eksemplet vil vi trekke ut en streng som inneholder alle tegnene i Python-filen så vi kan bruke file.read() .
Python3
# Python code to illustrate read() mode> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read())> |
>
>
Produksjon:
Hello world techcodeview.com 123 456>
Eksempel 3: I dette eksemplet vil vi se hvordan vi kan lese en fil ved hjelp av med uttalelse i Python.
Python3
# Python code to illustrate with()> with>open>(>'geeks.txt'>) as>file>:> >data>=> file>.read()> print>(data)> |
>
>
Produksjon:
Hello world techcodeview.com 123 456>
Eksempel 4: En annen måte å lese en fil på er å ringe et visst antall tegn som i følgende kode vil tolken lese de første fem tegnene med lagret data og returnere det som en streng:
Python3
# Python code to illustrate read() mode character wise> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read(>5>))> |
>
>
Produksjon:
Hello>
Eksempel 5: Vi kan også dele linjer mens vi leser filer i Python. Split()-funksjonen deler variabelen når det oppstår plass. Du kan også dele ved å bruke hvilke tegn du ønsker.
Python3
# Python code to illustrate split() function> with>open>(>'geeks.txt'>,>'r'>) as>file>:> >data>=> file>.readlines()> >for> line>in> data:> >word>=> line.split()> >print> (word)> |
>
>
Produksjon:
['Hello', 'world'] ['techcodeview.com'] ['123', '456']>
Opprette en fil ved å bruke skrive()-funksjonen
Akkurat som å lese en fil i Python, er det en rekke måter å gjøre det på Skriver til fil i Python . La oss se hvordan vi kan skrive innholdet i en fil ved å bruke skrive()-funksjonen i Python.
Arbeider i skrivemodus
La oss se hvordan du lager en fil og hvordan skrivemodusen fungerer.
Eksempel 1: I dette eksemplet vil vi se hvordan skrivemodusen og skrive()-funksjonen brukes til å skrive i en fil. Close()-kommandoen avslutter alle ressursene som er i bruk og frigjør systemet til dette spesielle programmet.
Python3
# Python code to create a file> file> => open>(>'geek.txt'>,>'w'>)> file>.write(>'This is the write command'>)> file>.write(>'It allows us to write in a particular file'>)> file>.close()> |
>
>
Produksjon:
This is the write commandIt allows us to write in a particular file>
Eksempel 2: Vi kan også bruke den skriftlige erklæringen sammen med funksjonen with().
Python3
# Python code to illustrate with() alongwith write()> with>open>(>'file.txt'>,>'w'>) as f:> >f.write(>'Hello World!!!'>)> |
>
>
Produksjon:
Hello World!!!>
Arbeid med Append-modus
La oss se hvordan tilleggsmodusen fungerer.
Eksempel: For dette eksemplet vil vi bruke Python-filen opprettet i forrige eksempel.
Python3
fibonacci-serien i ca
# Python code to illustrate append() mode> file> => open>(>'geek.txt'>,>'a'>)> file>.write(>'This will add this line'>)> file>.close()> |
>
>
Produksjon:
This is the write commandIt allows us to write in a particular fileThis will add this line>
Det er også forskjellige andre kommandoer i Python-filhåndtering som brukes til å håndtere forskjellige oppgaver:
rstrip(): This function strips each line of a file off spaces from the right-hand side. lstrip(): This function strips each line of a file off spaces from the left-hand side.>
Den er designet for å gi mye renere syntaks og unntakshåndtering når du jobber med kode. Det forklarer hvorfor det er god praksis å bruke dem med en erklæring der det er aktuelt. Dette er nyttig fordi ved å bruke denne metoden vil alle åpne filer lukkes automatisk etter at en er ferdig, så automatisk opprydding.
Implementere alle funksjonene i filhåndtering
I dette eksemplet vil vi dekke alle konseptene vi har sett ovenfor. Annet enn de vil vi også se hvordan vi kan slette en fil ved å bruke remove()-funksjonen fra Python os modul .
Python3
import> os> def> create_file(filename):> >try>:> >with>open>(filename,>'w'>) as f:> >f.write(>'Hello, world!
'>)> >print>(>'File '> +> filename>+> ' created successfully.'>)> >except> IOError:> >print>(>'Error: could not create file '> +> filename)> def> read_file(filename):> >try>:> >with>open>(filename,>'r'>) as f:> >contents>=> f.read()> >print>(contents)> >except> IOError:> >print>(>'Error: could not read file '> +> filename)> def> append_file(filename, text):> >try>:> >with>open>(filename,>'a'>) as f:> >f.write(text)> >print>(>'Text appended to file '> +> filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not append to file '> +> filename)> def> rename_file(filename, new_filename):> >try>:> >os.rename(filename, new_filename)> >print>(>'File '> +> filename>+> ' renamed to '> +> new_filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not rename file '> +> filename)> def> delete_file(filename):> >try>:> >os.remove(filename)> >print>(>'File '> +> filename>+> ' deleted successfully.'>)> >except> IOError:> >print>(>'Error: could not delete file '> +> filename)> if> __name__>=>=> '__main__'>:> >filename>=> 'example.txt'> >new_filename>=> 'new_example.txt'> >create_file(filename)> >read_file(filename)> >append_file(filename,>'This is some additional text.
'>)> >read_file(filename)> >rename_file(filename, new_filename)> >read_file(new_filename)> >delete_file(new_filename)> |
>
>
Produksjon:
File example.txt created successfully. Hello, world! Text appended to file example.txt successfully. Hello, world! This is some additional text. File example.txt renamed to new_example.txt successfully. Hello, world! This is some additional text. File new_example.txt deleted successfully.>