python file handling tutorial
Et intensivt kig på Python-filhåndteringsoperationer med praktiske eksempler:
I serien af Python tutorial til begyndere , vi lærte mere om Python-strengfunktioner i vores sidste tutorial.
Python giver os en vigtig funktion til at læse data fra filen og skrive data til en fil.
For det meste lagres alle værdier eller data i programmeringssprog i nogle variabler, der er ustabile.
Fordi data kun gemmes i disse variabler under kørselstiden og går tabt, når programudførelsen er afsluttet. Derfor er det bedre at gemme disse data permanent ved hjælp af filer.
Hvad du lærer:
- Hvordan håndterer Python filer?
- Typer af filer i Python
- Python-filhåndteringsoperationer
- Kodning i filer
- Skrivning og læsning af data fra en binær fil
- Fil I / O-attributter
- Python-filmetoder
- Resumé
- Anbefalet læsning
Hvordan Python håndterer filer ?
Hvis du arbejder i et stort softwareapplikation, hvor de behandler et stort antal data, kan vi ikke forvente, at disse data gemmes i en variabel, da variablerne er ustabile.
Derfor, hvornår skal du håndtere sådanne situationer, vil filernes rolle komme ind i billedet.
Da filer ikke er ustabile, lagres dataene permanent i en sekundær enhed som harddisk, og ved hjælp af python håndterer vi disse filer i vores applikationer.
Tænker du på, hvordan python håndterer filer?
Lad os tage en Eksempel af, hvordan normale mennesker vil håndtere filerne. Hvis vi vil læse dataene fra en fil eller skrive dataene i en fil, åbner vi først og fremmest filen eller opretter en ny fil, hvis filen ikke findes, og udfører derefter de normale læse / skrive-operationer , gem filen og luk den.
På samme måde udfører vi de samme operationer i python ved hjælp af nogle indbyggede metoder eller funktioner.
Typer af filer i Python
Der er to typer filer i Python, og hver af dem forklares nedenfor i detaljer med eksempler til nem forståelse.
De er:
- Binær fil
- Tekstfil
Binære filer i Python
De fleste af de filer, vi ser i vores computersystem, kaldes binære filer.
Eksempel:
- Dokumentfiler: .pdf, .doc, .xls osv.
- Billedfiler: .png, .jpg, .gif, .bmp osv.
- Videofiler: .mp4, .3gp, .mkv, .avi osv.
- Lydfiler: .mp3, .wav, .mka, .aac osv.
- Databasefiler: .mdb, .accde, .frm, .sqlite osv.
- Arkiver filer: .zip, .rar, .iso, .7z osv.
- Eksekverbare filer: .exe, .dll, .class osv.
Anbefalet læsning = >> Sådan åbnes .7z fil
Alle binære filer følger et bestemt format. Vi kan åbne nogle binære filer i den normale teksteditor, men vi kan ikke læse det indhold, der findes i filen. Det skyldes, at alle de binære filer vil blive kodet i det binære format, hvilket kun kan forstås af en computer eller maskine.
Til håndtering af sådanne binære filer har vi brug for en bestemt type software til at åbne den.
For eksempel, Du har brug for Microsoft word-software til at åbne .doc binære filer. På samme måde har du brug for en pdf-læser-software til at åbne .pdf-binære filer, og du har brug for en fotoredigeringssoftware til at læse billedfilerne og så videre.
Tekstfiler i Python
Tekstfiler har ingen specifik kodning, og den kan åbnes i selve den normale teksteditor.
Eksempel:
- Webstandarder: html, XML, CSS, JSON osv.
- Kildekode: c, app, js, py, java osv.
- Dokumenter: txt, tex, RTF osv.
- Tabeldata: csv, tsv osv.
- Konfiguration: ini, cfg, reg osv.
I denne vejledning vil vi se, hvordan man håndterer både tekst såvel som binære filer med nogle klassiske eksempler.
Python-filhåndteringsoperationer
Vigtigst er der fire typer operationer, der kan håndteres af Python på filer:
- Åben
- Læs
- Skrive
- Tæt
Andre operationer inkluderer:
- Omdøb
- Slet
Python Opret og åbn en fil
Python har en indbygget funktion kaldet åben () for at åbne en fil.
Det tager mindst et argument som nævnt i nedenstående syntaks. Den åbne metode returnerer et filobjekt, der bruges til at få adgang til skrive-, læse- og andre indbyggede metoder.
Syntaks:
file_object = open(file_name, mode)
Her er filnavn navnet på filen eller placeringen af den fil, du vil åbne, og filnavn skal også have filtypen inkluderet. Hvilket betyder i test.txt - udtrykket test er navnet på filen, og .txt er filens udvidelse.
Tilstanden i den åbne funktionssyntaks fortæller Python, hvilken operation du vil udføre på en fil.
- 'R' - læsetilstand: Læsetilstand bruges kun til at læse data fra filen.
- 'W' - skrivetilstand: Denne tilstand bruges, når du vil skrive data i filen eller ændre dem. Husk skrivemåde overskriver de data, der findes i filen.
- 'A' - Tilføj tilstand: Append-tilstand bruges til at føje data til filen. Husk, at data tilføjes i slutningen af filmarkøren.
- 'R +' - læse- eller skrivetilstand: Denne tilstand bruges, når vi vil skrive eller læse dataene fra den samme fil.
- 'A +' - Tilføj eller læs tilstand: Denne tilstand bruges, når vi vil læse data fra filen eller føje dataene til den samme fil.
Bemærk: Ovennævnte tilstande er kun til åbning, læsning eller skrivning af tekstfiler.
Når vi bruger binære filer, skal vi bruge de samme tilstande med brevet 'B' i slutningen. Så Python kan forstå, at vi interagerer med binære filer.
- 'Wb' - Åbn en fil til kun skrive-tilstand i binært format.
- 'Rb' - Åbn en fil til skrivebeskyttet tilstand i binært format.
- 'Fra' - Åbn en fil, der kun kan tilføjes i binært format.
- 'Rb +' - Åbn en fil til tilstanden læse og skrive kun i binært format.
- 'Fra +' - Åbn en fil til tilføjelse og skrivebeskyttet tilstand i binært format.
Eksempel 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
I ovenstående eksempel åbner vi filen med navnet 'test.txt' til stede på placeringen 'C: / Documents / Python /', og vi åbner den samme fil i en læse-skrivetilstand, som giver os mere fleksibilitet.
Eksempel 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
I ovenstående eksempel åbner vi filen med navnet 'img.bmp' til stede på placeringen 'C: / Documents / Python /', men her forsøger vi at åbne den binære fil.
Python læses fra fil
For at kunne læse en fil i python, skal vi åbne filen i læsetilstand.
Der er tre måder, hvorpå vi kan læse filerne i python.
- læse ((n))
- readline ((n))
- readlines ()
Her er n antallet af byte, der skal læses.
Lad os først oprette en eksempeltekstfil som vist nedenfor.
Lad os nu se, hvad hver læsemetode gør:
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Produktion:
Hej
Her åbner vi filen test.txt i en skrivebeskyttet tilstand og læser kun de første 5 tegn i filen ved hjælp af metoden my_file.read (5).
Produktion:
Eksempel 2:
hvad er den bedste gratis computerrenser?
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Produktion:
Hej Verden
Hej Python
god morgen
Her har vi ikke givet noget argument inde i funktionen read (). Derfor vil det læse alt det indhold, der findes i filen.
Produktion:
Eksempel 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Produktion:
Han
Denne funktion returnerer de første 2 tegn i den næste linje.
Produktion:
Eksempel 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Produktion:
Hej Verden
Ved hjælp af denne funktion kan vi læse indholdet af filen linje for linje.
Produktion:
Eksempel 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Produktion:
('Hello World n', 'Hello Python n', 'Good Morning')
Her læser vi alle de linjer, der findes i tekstfilen inklusive de nye linjetegn.
Produktion:
Lad os nu se nogle mere praktiske eksempler på læsning af en fil.
Læsning af 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
Produktion:
Hvordan har du det
I ovenstående eksempel forsøger vi kun at læse 4thlinje fra 'test.txt'-filen ved hjælp af en “For loop” .
Produktion:
Læsning af hele filen på én gang
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Produktion:
Hej Verden
Hej Python
god morgen
Hvordan har du det
Produktion:
Python skriv til fil
For at skrive data i en fil skal vi åbne filen i skrivetilstand.
Vi skal være meget forsigtige, når vi skriver data i filen, da den overskriver det indhold, der er til stede i den fil, du skriver, og alle tidligere data slettes.
Vi har to metoder til at skrive data til 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”)
Ovenstående kode skriver String 'Hello World' i 'test.txt'-filen.
Inden du skriver data til en test.txt-fil:
Produktion:
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
Den første linje vil være 'Hello World', og som vi har nævnt n tegn, vil markøren flytte til den næste linje i filen og derefter skrive 'Hello Python'.
c ++ spørgsmål til kodning af interview
Husk, at hvis vi ikke nævner n tegn, så skrives dataene kontinuerligt i tekstfilen som 'Hello WorldHelloPython'
Produktion:
Eksempel 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Ovenstående kode skriver a liste over data ind i 'test.txt'-filen samtidigt.
Produktion:
Python føjes til filen
For at tilføje data til en fil skal vi åbne filen i 'a +' -tilstand, så vi får adgang til både tilføjelses- og skrivetilstandene.
Eksempel 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Ovenstående kode tilføjer strengen 'Apple' på ende af filen 'test.txt'.
Produktion:
Eksempel 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Ovenstående kode tilføjer strengen 'Apple' i slutningen af filen 'test.txt' i en ny linje .
Produktion:
Eksempel 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Ovenstående kode tilføjer en liste med data i en 'test.txt'-fil.
Produktion:
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 ovenstående kode tilføjer vi listen over data i 'test.txt'-filen. Her kan du se, at vi har brugt tell () -metoden, der udskriver, hvor markøren er i øjeblikket.
søg (forskudt): Forskydningen tager tre typer argumenter, nemlig 0,1 og 2.
Når forskydningen er 0: Henvisning vil blive peget i starten af filen.
Når forskydningen er 1: Henvisning vil blive peget på den aktuelle markørposition.
Når forskydningen er 2: Henvisning vil blive peget i slutningen af filen.
Produktion:
Python Luk fil
For at lukke en fil skal vi først åbne filen. I python har vi en indbygget metode kaldet close () for at lukke den fil, der åbnes.
Når du åbner en fil, er det vigtigt at lukke den, især med skrivemetoden. For hvis vi ikke kalder lukkefunktionen efter skrivemetoden, vil de data, vi har skrevet til en fil, ikke blive gemt 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 Omdøb eller Slet fil
Python giver os et “os” -modul, der har nogle indbyggede metoder, der kan hjælpe os med at udføre filhandlingerne, f.eks. Omdøbe og slette filen.
For at kunne bruge dette modul skal vi først og fremmest importere “os” -modulet i vores program og derefter kalde de relaterede metoder.
omdøb () metode:
Denne omdøbningsmetode () accepterer to argumenter, dvs. det aktuelle filnavn og det nye filnavn.
Syntaks:
os.rename(current_file_name, new_file_name)
Eksempel 1:
import os os.rename(“test.txt”, “test1.txt”)
Her er 'test.txt' det aktuelle filnavn og 'test1.txt' er det nye filnavn.
Du kan angive placeringen såvel som vist i nedenstående eksempel.
Eksempel 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Inden du omdøber filen:
Efter udførelse af ovenstående program
fjern () metode:
Vi bruger metoden remove () til at slette filen ved at angive filnavnet eller den filplacering, du vil slette.
Syntaks:
os.remove(file_name)
Eksempel 1:
import os os.remove(“test.txt”)
Her er 'test.txt' den fil, du vil fjerne.
På samme måde kan vi også sende filplaceringen til argumenterne som vist i nedenstående eksempel
Eksempel 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Kodning i filer
Filkodning repræsenterer konvertering af tegn til et specifikt format, som kun en maskine kan forstå.
Forskellige maskiner har forskellige kodningsformater som vist nedenfor.
- Microsoft Windows OS bruger 'Cp1252' kodningsformat som standard.
- Linux eller Unix OS bruger 'Utf-8' kodningsformat som standard.
- Apples MAC OS bruger 'Utf-8' eller 'utf-16' kodningsformat som standard.
Lad os se kodningsoperationen med nogle 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()
Produktion:
Microsoft Windows-kodningsformat er som standard cp1252.
Her udførte jeg mit program på Windows-maskinen, så det har udskrevet standardkodningen som 'cp1252'.
Produktion:
Vi kan også ændre kodningsformatet for en fil ved at sende den som argumenter til den åbne funktion.
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()
Produktion:
Filkodningsformat er: cp437
Produktion:
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()
Produktion:
Filkodningsformat er: utf-16
Produktion:
god mp3 musik downloader til android
Skrivning og læsning af data fra en binær fil
Binære filer gemmer data i det binære format (0 og 1), hvilket er forståeligt af maskinen. Så når vi åbner den binære fil på vores maskine, afkoder den dataene og vises i et menneskeligt læsbart format.
Eksempel:
# Lad os oprette 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 ovenstående eksempel opretter vi først en binær fil 'Bfile.bin' med læse- og skriveadgang og de data, du vil indtaste i filen, skal være kodet, før du kalder skrivemetoden.
Vi udskriver også dataene uden at afkode dem, så vi kan se, hvordan dataene ser nøjagtigt ud i filen, når de er kodet, og vi udskriver også de samme data ved at afkode dem, så de kan læses af mennesker.
Produktion:
Binære data: b'Hello Python '
Normale data: Hej Python
Produktion:
Fil I / O-attributter
Attribut | Beskrivelse |
---|---|
readlines () | Læser og returnerer alle linjer fra filen |
Navn | Returner navnet på filen |
Mode | Returtilstand for filen |
Indkodning | Returner kodningsformatet for filen |
Lukket | Returner sandt, hvis filen lukkes ellers returnerer falsk |
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)
Produktion:
Hvad er filnavnet? C: /Dokumenter / Python / test.txt
Hvad er filtilstanden? r
Hvad er kodningsformatet? cp1252
Er filen lukket? Falsk
Er filen lukket? Sand
Produktion:
Lad os prøve et par andre metoder til 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()
Produktion:
Hej Python
Hej Verden
god morgen
Er filen læsbar :? Sand
Kan filen skrives :? Sand
Fil nr: 3
Produktion:
Python-filmetoder
Fungere | Forklaring |
---|---|
åben() | For at åbne en fil |
tæt() | Luk en åben fil |
fileno () | Returnerer filens heltal |
læse (n) | Læser 'n' tegn fra filen til slutningen af filen |
læselig() | Returnerer sandt, hvis filen er læsbar |
readline () | Læs og returner en linje fra filen |
søg (forskudt) | Skift markørposition med byte som angivet af forskydningen |
søgbar () | Returnerer sandt, hvis filen understøtter tilfældig adgang |
fortælle() | Returnerer den aktuelle filplacering |
skrivbar () | Returnerer sandt, hvis filen er skrivbar |
skrive() | Skriver en streng med data til filen |
writelines () | Skriver en liste med data til filen |
Lad os se, hvad vi hidtil har diskuteret i et end-end-program.
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()
Produktion:
Hvad er filnavnet? C: /Dokumenter / Python / test.txt
Hvad er filens tilstand? w +
Hvad er kodningsformatet? cp1252
Størrelsen på filen er: 192
Markørposition er ved byte: 36
Indholdet af filen er: Hej Python
god morgen
Farvel
Data til stede på den aktuelle linje 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
Produktion:
Resumé
Nedenfor er nogle få tip, der kan opsummeres fra ovenstående tutorial:
- Vi bruger normalt en fil til lagring af data permanent i det sekundære lager, da de ikke er flygtige i naturen, så dataene kan bruges i fremtiden.
- Til tider i nogle applikationer vil vi måske læse dataene fra en tekstfil eller binær fil, så vi kan opnå det ved hjælp af de indbyggede funktioner i Python som åbne, læse, skrive metoder osv.
- Du skal være meget forsigtig, når du bruger skrivemetoden, fordi de data, du skriver i filen, overskrives, og de gamle data går tabt.
- For at forhindre overskrivning af data er det bedre at åbne en fil i skrive- og tilføjelsestilstand, så data tilføjes i slutningen af filen.
- Husk, at når du åbner en fil i binær tilstand, accepterer den ikke kodningsparameteret.
- Du kan udføre omdøbning og sletning af en fil ved hjælp af omdøbning og fjerne metoder fra “os” -modulet / -pakken.
Vi håber, du har haft denne informative vejledning om Python File Handling. Vores kommende vejledning forklarer mere om Pythons hovedfunktion.
PREV-vejledning | NÆSTE vejledning
Anbefalet læsning
- Input-output og filer i Python (Python åben, læse og skrive til fil)
- Python DateTime-tutorial med eksempler
- Python-vejledning til begyndere (GRATIS Python-træning)
- Dybdegående formørkelsesvejledninger til begyndere
- Python-strengfunktioner
- Python String Split Tutorial
- Python-variabler
- VBScript-filobjekter: CopyFile, DeleteFile, OpenTextFile, Læs og skriv tekstfil