python file handling tutorial
En intensiv titt på Python File Handling Operations med praktiske eksempler:
I serien av Python tutorial for nybegynnere , vi lærte mer om Python-strengfunksjoner i vår siste opplæring.
Python gir oss en viktig funksjon for å lese data fra filen og skrive data til en fil.
For det meste lagres alle verdiene eller dataene i programmeringsspråk i noen variabler som er ustabile.
Fordi data bare blir lagret i disse variablene i løpet av kjøretiden og vil gå tapt når programutførelsen er fullført. Derfor er det bedre å lagre disse dataene permanent ved hjelp av filer.
Hva du vil lære:
- Hvordan håndterer Python filer?
- Typer fil i Python
- Python File Handling Operations
- Koding i filer
- Skrive og lese data fra en binær fil
- Fil I / O-attributter
- Python-filmetoder
- Sammendrag
- Anbefalt lesing
Hvordan Python håndterer filer ?
Hvis du jobber i et stort program der de behandler et stort antall data, kan vi ikke forvente at disse dataene skal lagres i en variabel ettersom variablene er ustabile.
Derfor når du skal håndtere slike situasjoner, vil rollen til filer komme inn i bildet.
Siden filene ikke er ustabile, lagres dataene permanent i en sekundær enhet som harddisken, og ved hjelp av python vil vi håndtere disse filene i applikasjonene våre.
Tenker du på hvordan python vil håndtere filer?
La oss ta en Eksempel av hvordan normale mennesker vil håndtere filene. Hvis vi vil lese dataene fra en fil eller skrive dataene i en fil, vil vi først og fremst åpne filen eller opprette en ny fil hvis filen ikke eksisterer og deretter utføre de normale lese- / skriveoperasjonene , lagre filen og lukk den.
På samme måte gjør vi de samme operasjonene i python ved hjelp av noen innebygde metoder eller funksjoner.
Typer fil i Python
Det er to typer filer i Python, og hver av dem blir forklart i detalj nedenfor med eksempler for enkel forståelse.
De er:
- Binær fil
- Tekstfil
Binære filer i Python
De fleste av filene vi ser i vårt datasystem kalles binære filer.
Eksempel:
- Dokumentfiler: .pdf, .doc, .xls etc.
- Bildefiler: .png, .jpg, .gif, .bmp etc.
- Videofiler: .mp4, .3gp, .mkv, .avi etc.
- Lydfiler: .mp3, .wav, .mka, .aac osv.
- Databasefiler: .mdb, .accde, .frm, .sqlite etc.
- Arkivfiler: .zip, .rar, .iso, .7z etc.
- Kjørbare filer: .exe, .dll, .class etc.
Anbefalt lesing = >> Hvordan åpne .7z-filen
Alle binære filer følger et bestemt format. Vi kan åpne noen binære filer i den normale teksteditoren, men vi kan ikke lese innholdet i filen. Det er fordi alle binære filer blir kodet i binært format, som bare kan forstås av en datamaskin eller maskin.
For å håndtere slike binære filer trenger vi en bestemt type programvare for å åpne den.
For eksempel, Du trenger Microsoft Word-programvare for å åpne .doc binære filer. På samme måte trenger du en pdf-leserprogramvare for å åpne .pdf binære filer, og du trenger en programvare for bildeditor for å lese bildefilene og så videre.
Tekstfiler i Python
Tekstfiler har ingen spesifikk koding, og den kan åpnes i vanlig tekstredigeringsprogram.
Eksempel:
- Nettstandarder: html, XML, CSS, JSON etc.
- Kildekode: c, app, js, py, java etc.
- Dokumenter: txt, tex, RTF etc.
- Tabelldata: csv, tsv etc.
- Konfigurasjon: ini, cfg, reg etc.
I denne opplæringen vil vi se hvordan du håndterer både tekst og binære filer med noen klassiske eksempler.
Python File Handling Operations
Viktigst er det fire typer operasjoner som kan håndteres av Python på filer:
- Åpen
- Lese
- Skrive
- Lukk
Andre operasjoner inkluderer:
- Gi nytt navn
- Slett
Python Opprett og åpne en fil
Python har en innebygd funksjon kalt open () for å åpne en fil.
Det tar minst ett argument som nevnt i syntaksen nedenfor. Den åpne metoden returnerer et filobjekt som brukes til å få tilgang til skrive-, lese- og andre innebygde metoder.
Syntaks:
file_object = open(file_name, mode)
Her er filnavn navnet på filen eller plasseringen av filen du vil åpne, og filnavn skal også ha filtypen. Som betyr i test.txt - begrepet test er navnet på filen og .txt er filtypen.
Modusen i syntaksen for åpen funksjon vil fortelle Python som hvilken operasjon du vil gjøre på en fil.
- ‘R’ - Lesemodus: Lesemodus brukes bare til å lese data fra filen.
- ‘W’ - Skrivemodus: Denne modusen brukes når du vil skrive data i filen eller endre dem. Husk skrivemodus overskriver dataene i filen.
- ‘A’ - Legg til modus: Append-modus brukes til å legge til data i filen. Husk at data blir lagt til på slutten av filpekeren.
- ‘R +’ - lese- eller skrivemodus: Denne modusen brukes når vi vil skrive eller lese dataene fra den samme filen.
- ‘A +’ - Legg til eller lesemodus: Denne modusen brukes når vi vil lese data fra filen eller legge til dataene i den samme filen.
Merk: Ovennevnte moduser er kun for å åpne, lese eller skrive tekstfiler.
Når vi bruker binære filer, må vi bruke de samme modusene med bokstaven 'B' på slutten. Slik at Python kan forstå at vi kommuniserer med binære filer.
- 'Wb' - Åpne en fil for skrivemodus i binært format.
- ‘Rb’ - Åpne en fil for skrivebeskyttet modus i binært format.
- 'Fra' - Åpne en fil for kun å legge til modus i binært format.
- ‘Rb +’ - Åpne en fil for lese- og skrivemodus i binært format.
- ‘Fra +’ - Åpne en fil for vedlegg og skrivebeskyttet modus i binært format.
Eksempel 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
I eksemplet ovenfor åpner vi filen med navnet 'test.txt' tilstede på stedet 'C: / Documents / Python /', og vi åpner den samme filen i en lese-skrivemodus som gir oss mer fleksibilitet.
Eksempel 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
I eksemplet ovenfor åpner vi filen med navnet 'img.bmp' til stede på stedet 'C: / Documents / Python /', men her prøver vi å åpne den binære filen.
Python lest fra fil
For å lese en fil i python, må vi åpne filen i lesemodus.
Det er tre måter vi kan lese filene i python.
- lese ((n))
- readline ((n))
- readlines ()
Her er n antall byte som skal leses.
La oss først lage en eksempeltekstfil som vist nedenfor.
La oss nå observere hva hver lesemetode gjør:
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Produksjon:
Hallo
Her åpner vi filen test.txt i en skrivebeskyttet modus og leser bare de første 5 tegnene i filen ved hjelp av my_file.read (5) -metoden.
Produksjon:
Eksempel 2:
hva du skal bruke for å åpne xml-filer
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Produksjon:
Hei Verden
Hei Python
God morgen
Her har vi ikke gitt noen argumenter inne i read () - funksjonen. Derfor vil det lese alt innholdet i filen.
Produksjon:
Eksempel 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Produksjon:
Han
Denne funksjonen returnerer de to første tegnene på neste linje.
Produksjon:
Eksempel 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Produksjon:
Hei Verden
Ved hjelp av denne funksjonen kan vi lese innholdet i filen på linje for linje.
Produksjon:
Eksempel 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Produksjon:
(‘Hello World n’, ‘Hello Python n’, ‘Good Morning’)
Her leser vi alle linjene som er tilstede i tekstfilen, inkludert de nye linjene.
Produksjon:
La oss nå se noen flere praktiske eksempler på å lese en fil.
Lese en bestemt linje fra en fil
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1
Produksjon:
Hvordan har du det
I eksemplet ovenfor prøver vi å lese bare 4thlinje fra 'test.txt'-filen ved hjelp av en “For loop” .
Produksjon:
Les hele filen samtidig
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Produksjon:
Hei Verden
Hei Python
God morgen
Hvordan har du det
Produksjon:
Python skriv til fil
For å skrive data i en fil, må vi åpne filen i skrivemodus.
Vi må være veldig forsiktige når vi skriver data inn i filen da den overskriver innholdet som er tilstede i filen du skriver, og alle tidligere data blir slettet.
Vi har to metoder for å skrive data i en fil som vist nedenfor.
- skriv (streng)
- Writelines (liste)
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Ovennevnte kode skriver String ‘Hello World’ inn i ‘test.txt’-filen.
Før du skriver data til en test.txt-fil:
Produksjon:
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
Den første linjen vil være 'Hello World' og som vi har nevnt n tegn, vil markøren flytte til neste linje i filen og deretter skrive 'Hello Python'.
hvordan åpne bin filer i windows
Husk at hvis vi ikke nevner n tegn, vil dataene skrives kontinuerlig i tekstfilen som 'Hello WorldHelloPython'
Produksjon:
Eksempel 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Ovennevnte kode skriver a liste over data inn i 'test.txt'-filen samtidig.
Produksjon:
Python legg til fil
For å legge til data i en fil må vi åpne filen i ‘a +’ modus slik at vi får tilgang til både tilleggs- og skrivemodus.
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Ovennevnte kode legger til strengen 'Apple' på slutt av ‘test.txt’-filen.
Produksjon:
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Ovennevnte kode legger til strengen 'Apple' på slutten av 'test.txt'-filen i en ny linje .
Produksjon:
Eksempel 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Ovennevnte kode legger til en liste over data inn i en ‘test.txt’-fil.
Produksjon:
Eksempel 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)
I koden ovenfor legger vi listen over data inn i ‘test.txt’-filen. Her kan du observere at vi har brukt tell () -metoden som skriver ut der markøren for øyeblikket er.
søk (forskjøvet): Offset tar tre typer argumenter, nemlig 0,1 og 2.
Når forskyvningen er 0: Referanse vil bli pekt på begynnelsen av filen.
Når forskyvningen er 1: Referanse vil bli pekt på gjeldende markørposisjon.
Når forskyvningen er 2: Henvisning vil bli pekt på slutten av filen.
Produksjon:
Python Close File
For å lukke en fil, må vi først åpne filen. I python har vi en innebygd metode kalt close () for å lukke filen som åpnes.
Når du åpner en fil, er det viktig å lukke den, spesielt med skrivemetoden. For hvis vi ikke kaller lukkefunksjonen etter skrivemetoden, blir ikke dataene vi har skrevet til en fil lagret i filen.
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Python Gi nytt navn eller slett fil
Python gir oss en “os” -modul som har noen innebygde metoder som vil hjelpe oss med å utføre filoperasjonene, for eksempel å gi nytt navn og slette filen.
For å kunne bruke denne modulen, må vi først og fremst importere “os” -modulen i programmet vårt og deretter ringe de relaterte metodene.
endre navn på () metode:
Denne omdøpningsmetoden () godtar to argumenter, dvs. det nåværende filnavnet og det nye filnavnet.
Syntaks:
os.rename(current_file_name, new_file_name)
Eksempel 1:
import os os.rename(“test.txt”, “test1.txt”)
Her er ‘test.txt’ det nåværende filnavnet og ‘test1.txt’ er det nye filnavnet.
Du kan spesifisere plasseringen så vel som vist i eksemplet nedenfor.
Eksempel 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Før du gir nytt navn til filen:
Etter å ha kjørt programmet ovenfor
remove () metode:
Vi bruker remove () -metoden for å slette filen ved å oppgi filnavnet eller filplasseringen du vil slette.
Syntaks:
os.remove(file_name)
Eksempel 1:
import os os.remove(“test.txt”)
Her er ‘test.txt’ filen du vil fjerne.
På samme måte kan vi også sende filplasseringen til argumentene som vist i eksemplet nedenfor
Eksempel 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Koding i filer
Filkoding representerer konvertering av tegn til et bestemt format som bare en maskin kan forstå.
Ulike maskiner har forskjellig kodingsformat som vist nedenfor.
- Microsoft Windows OS bruker ‘Cp1252’ kodingsformat som standard.
- Linux eller Unix OS bruker ‘Utf-8’ kodingsformat som standard.
- Apples MAC OS bruker ‘Utf-8’ eller ‘utf-16’ kodingsformat som standard.
La oss se kodingsoperasjonen med noen eksempler.
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()
Produksjon:
Microsoft Windows-kodingsformat er som standard cp1252.
Her kjørte jeg programmet mitt på Windows-maskinen, så det har skrevet ut standard koding som ‘cp1252’.
Produksjon:
Vi kan også endre kodingsformatet til en fil ved å sende den som argumenter til den åpne funksjonen.
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Produksjon:
Filkodingsformat er: cp437
Produksjon:
Eksempel 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Produksjon:
Filkodingsformat er: utf-16
Produksjon:
Skrive og lese data fra en binær fil
Binære filer lagrer data i binært format (0 og 1) som er forståelig for maskinen. Så når vi åpner den binære filen på maskinen vår, dekoder den dataene og vises i et lesbart format.
Eksempel:
# La oss lage en binær fil.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)
I eksemplet ovenfor oppretter vi først en binær fil 'Bfile.bin' med lese- og skrivetilgang og hvilke data du vil legge inn i filen, må være kodet før du ringer til skrivemetoden.
Vi skriver også ut dataene uten å dekode dem, slik at vi kan observere hvordan dataene ser nøyaktig ut i filen når de er kodet, og vi skriver også ut de samme dataene ved å dekode dem slik at de kan leses av mennesker.
nettsteder for å konvertere youtube-videoer til mp3
Produksjon:
Binære data: b’Hello Python ’
Normale data: Hei Python
Produksjon:
Fil I / O-attributter
Egenskap | Beskrivelse |
---|---|
readlines () | Leser og returnerer alle linjene fra filen |
Navn | Returner navnet på filen |
Modus | Returmodus for filen |
Koding | Returner kodingsformatet til filen |
Lukket | Returner true hvis filen lukkes ellers returnerer false |
Eksempel:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)
Produksjon:
Hva er filnavnet? C: /Documents/Python/test.txt
Hva er filmodus? r
Hva er kodingsformatet? cp1252
Er filen lukket? Falsk
Er filen lukket? ekte
Produksjon:
La oss prøve noen få andre metoder for filen.
Eksempel:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()
Produksjon:
Hei Python
Hei Verden
God morgen
Er filen lesbar :? ekte
Kan filen skrives :? ekte
Fil nr: 3
Produksjon:
Python-filmetoder
Funksjon | Forklaring |
---|---|
åpen() | Å åpne en fil |
Lukk() | Lukk en åpen fil |
fileno () | Returnerer et heltall på filen |
les (n) | Leser 'n' tegn fra filen til slutten av filen |
leselig() | Returnerer sant hvis filen er lesbar |
readline () | Les og returner en linje fra filen |
søke (forskjøvet) | Endre markørposisjonen med byte som angitt av forskyvningen |
søkbar () | Returnerer sant hvis filen støtter tilfeldig tilgang |
fortelle() | Returnerer gjeldende filplassering |
skrivbar () | Returnerer sant hvis filen er skrivbar |
skrive() | Skriver en streng med data til filen |
writelines () | Skriver en liste med data til filen |
La oss se hva vi har diskutert så langt i et sluttprogram.
Eksempel:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()
Produksjon:
Hva er filnavnet? C: /Documents/Python/test.txt
Hva er filens modus? w +
Hva er kodingsformatet? cp1252
Størrelsen på filen er: 192
Markørposisjon er ved byte: 36
Innholdet i filen er: Hei Python
God morgen
Ha det
Data som er til stede på den nåværende linjen er: Farvel
Binære data er: b ' xff xfe x00 x00G x00 x00 x00o x00 x00 x00o x00 x00 x00d x00 x00 x00 x00 x00 x00B x00 x00 x00y x00 x00 x00e x00 x00 x00 '
Normale data er: Farvel
Produksjon:
Sammendrag
Nedenfor er noen tips som kan oppsummeres fra opplæringen ovenfor:
- Vi bruker vanligvis en fil for å lagre data permanent i den sekundære lagringen, da den ikke er ustabil, slik at dataene kan brukes i fremtiden.
- Noen ganger kan det være lurt å lese dataene fra en tekstfil eller binær fil i noen applikasjoner, slik at vi kan oppnå det ved hjelp av de innebygde funksjonene i Python som åpne, lese-, skrivemetoder etc.
- Du må være veldig forsiktig når du bruker skrivemetoden, for alle dataene du skriver inn i filen blir overskrevet og de gamle dataene går tapt.
- For å forhindre overskriving av data er det bedre å åpne en fil i skrive- og vedleggsmodus slik at data blir lagt til på slutten av filen.
- Husk at når du åpner en fil i binærmodus, godtar den ikke kodingsparameteren.
- Du kan utføre navn på og slette på en fil ved å gi nytt navn og fjerne metoder fra 'os' -modulen / -pakken.
Vi håper du likte denne informative veiledningen om Python File Handling. Vår kommende opplæring vil forklare mer om Python Main Function.
PREV Opplæring | NESTE veiledning
Anbefalt lesing
- Input-Output og filer i Python (Python Åpne, lese og skrive til fil)
- Python DateTime Tutorial med eksempler
- Python-opplæring for nybegynnere (praktisk GRATIS Python-trening)
- In-Depth Eclipse Tutorials For Beginners
- Python-strengfunksjoner
- Python String Split Tutorial
- Python-variabler
- VBScript-filobjekter: CopyFile, DeleteFile, OpenTextFile, Les og skriv tekstfil