logo

Filhantering i Python

Filhantering i Python är ett kraftfullt och mångsidigt verktyg som kan användas för att utföra ett brett spektrum av operationer. Det är dock viktigt att noga överväga fördelarna och nackdelarna med filhantering när du skriver Python-program, för att säkerställa att koden är säker, pålitlig och fungerar bra.

I den här artikeln kommer vi att utforska Python-filhantering, fördelar, nackdelar och hur öppna, skriva och lägga till funktioner fungerar i python-filer.



Python-filhantering

Python stöder filhantering och tillåter användare att hantera filer, dvs att läsa och skriva filer, tillsammans med många andra filhanteringsalternativ, för att arbeta med filer. Konceptet med filhantering har sträckt sig över flera andra språk, men implementeringen är antingen komplicerad eller långdragen, precis som andra begrepp i Python är detta koncept här också enkelt och kort. Pytonorm behandlar filer på olika sätt som text eller binär och detta är viktigt. Varje kodrad innehåller en sekvens av tecken, och de bildar en textfil. Varje rad i en fil avslutas med ett specialtecken, kallat EOL eller End of Line karaktärer som kommatecken {,} eller nyradstecken. Den avslutar den nuvarande raden och talar om för tolken att en ny har börjat. Låt oss börja med läs- och skrivfilerna.

Fördelar med filhantering i Python

  • Mångsidighet : Filhantering i Python låter dig utföra ett brett utbud av operationer, som att skapa, läsa, skriva, lägga till, byta namn på och ta bort filer.
  • Flexibilitet : Filhantering i Python är mycket flexibel, eftersom den låter dig arbeta med olika filtyper (t.ex. textfiler, binära filer, CSV-filer , etc.), och för att utföra olika operationer på filer (t.ex. läsa, skriva, lägga till, etc.).
  • Användare vänlig : Python tillhandahåller ett användarvänligt gränssnitt för filhantering, vilket gör det enkelt att skapa, läsa och manipulera filer.
  • Cross-plattform : Python-filhanteringsfunktioner fungerar på olika plattformar (t.ex. Windows, Mac, Linux), vilket möjliggör sömlös integration och kompatibilitet.

Nackdelar med filhantering i Python

  • Felbenägen: Filhanteringsoperationer i Python kan vara utsatta för fel, särskilt om koden inte är noggrant skriven eller om det finns problem med filsystemet (t.ex. filbehörigheter, fillås, etc.).
  • Säkerhetsrisker : Filhantering i Python kan också utgöra säkerhetsrisker, särskilt om programmet accepterar användarindata som kan användas för att komma åt eller ändra känsliga filer på systemet.
  • Komplexitet : Filhantering i Python kan vara komplex, speciellt när man arbetar med mer avancerade filformat eller operationer. Noggrann uppmärksamhet måste ägnas åt koden för att säkerställa att filer hanteras korrekt och säkert.
  • Prestanda : Filhanteringsoperationer i Python kan vara långsammare än andra programmeringsspråk, särskilt när man hanterar stora filer eller utför komplexa operationer.

För den här artikeln kommer vi att överväga följande geeks.txt fil som exempel.

Hello world techcodeview.com 123 456>

Python-fil Öppna

Innan vi utför någon operation på filen, som att läsa eller skriva, måste vi först öppna den filen. För detta bör vi använda Pythons inbyggda funktion öppen() men vid öppningstillfället måste vi specificera läget, som representerar syftet med öppningsfilen.



f = open(filename, mode)>

Där följande läge stöds:

  1. r: öppna en befintlig fil för en läsoperation.
  2. I: öppna en befintlig fil för en skrivoperation. Om filen redan innehåller vissa data kommer den att åsidosättas men om filen inte finns skapas filen också.
  3. a: öppna en befintlig fil för att lägga till. Det kommer inte att åsidosätta befintliga data.
  4. r+: För att läsa och skriva data i filen. Tidigare data i filen kommer att åsidosättas.
  5. w+: Att skriva och läsa data. Det kommer att åsidosätta befintliga data.
  6. a+: För att lägga till och läsa data från filen. Det kommer inte att åsidosätta befintliga data.

Arbetar i läsläge

Det finns mer än ett sätt att Hur man läser från en fil i Python . Låt oss se hur vi kan läsa innehållet i en fil i läsläge.

storleken på vektorn c++

Exempel 1: Kommandot öppna öppnar Python-filen i läsläge och for-slingan kommer att skriva ut varje rad som finns 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)>

>

>

Produktion:

Hello world techcodeview.com 123 456>

Exempel 2: I det här exemplet kommer vi att extrahera en sträng som innehåller alla tecken i Python-filen som vi sedan kan använda file.read() .

Python3




# Python code to illustrate read() mode> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read())>

>

>

Produktion:

Hello world techcodeview.com 123 456>

Exempel 3: I det här exemplet kommer vi att se hur vi kan läsa en fil med hjälp av med påstående i Python.

Python3




# Python code to illustrate with()> with>open>(>'geeks.txt'>) as>file>:> >data>=> file>.read()> print>(data)>

>

>

Produktion:

Hello world techcodeview.com 123 456>

Exempel 4: Ett annat sätt att läsa en fil är att anropa ett visst antal tecken som i följande kod kommer tolken att läsa de första fem tecknen i lagrad data och returnera den som en sträng:

Python3




# Python code to illustrate read() mode character wise> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read(>5>))>

>

>

Produktion:

Hello>

Exempel 5: Vi kan också dela rader medan vi läser filer i Python. Funktionen split() delar variabeln när utrymme påträffas. Du kan också dela med vilka tecken du vill.

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)>

>

>

Produktion:

['Hello', 'world'] ['techcodeview.com'] ['123', '456']>

Skapa en fil med funktionen write()

Precis som att läsa en fil i Python finns det ett antal sätt att Skriver till fil i Python . Låt oss se hur vi kan skriva innehållet i en fil med funktionen write() i Python.

Arbetar i skrivläge

Låt oss se hur man skapar en fil och hur skrivläget fungerar.

Exempel 1: I det här exemplet kommer vi att se hur skrivläget och funktionen write() används för att skriva i en fil. Kommandot close() avslutar alla resurser som används och frigör systemet för detta speciella program.

Python3




fabriksmetod designmönster

# 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()>

>

>

Produktion:

This is the write commandIt allows us to write in a particular file>

Exempel 2: Vi kan också använda det skriftliga uttalandet tillsammans med funktionen with().

Python3




# Python code to illustrate with() alongwith write()> with>open>(>'file.txt'>,>'w'>) as f:> >f.write(>'Hello World!!!'>)>

>

>

Produktion:

Hello World!!!>

Arbeta med Append Mode

Låt oss se hur tilläggsläget fungerar.

Exempel: För det här exemplet kommer vi att använda Python-filen som skapades i föregående exempel.

Python3




# Python code to illustrate append() mode> file> => open>(>'geek.txt'>,>'a'>)> file>.write(>'This will add this line'>)> file>.close()>

>

>

Produktion:

This is the write commandIt allows us to write in a particular fileThis will add this line>

Det finns också olika andra kommandon i Python-filhantering som används för att hantera olika uppgifter:

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 är utformad för att ge mycket renare syntax och undantagshantering när du arbetar med kod. Det förklarar varför det är bra att använda dem med ett uttalande där det är tillämpligt. Detta är användbart eftersom med den här metoden stängs alla öppnade filer automatiskt efter att en är klar, så automatisk rensning.

Implementera alla funktioner i filhantering

I det här exemplet kommer vi att täcka alla begrepp som vi har sett ovan. Förutom dessa kommer vi också att se hur vi kan ta bort en fil med funktionen remove() från 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)>

>

>

Produktion:

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.>