Failu apstrāde Python ir spēcīgs un daudzpusīgs rīks, ko var izmantot, lai veiktu visdažādākās darbības. Tomēr, rakstot Python programmas, ir svarīgi rūpīgi apsvērt failu apstrādes priekšrocības un trūkumus, lai nodrošinātu, ka kods ir drošs, uzticams un labi darbojas.
Šajā rakstā mēs izpētīsim Python failu apstrāde, priekšrocības, trūkumi un kā python failā darbojas atvēršanas, rakstīšanas un pievienošanas funkcijas.
Python failu apstrāde
Python atbalsta failu apstrādi un ļauj lietotājiem rīkoties ar failiem, t.i., lasīt un rakstīt failus, kā arī daudzas citas failu apstrādes opcijas, lai strādātu ar failiem. Failu apstrādes jēdziens ir izstiepts vairākās citās valodās, taču ieviešana ir sarežģīta vai ilgstoša, tāpat kā citi Python jēdzieni, arī šī koncepcija šeit ir vienkārša un īsa. Python apstrādā failus atšķirīgi kā tekstu vai bināros failus, un tas ir svarīgi. Katra koda rinda ietver rakstzīmju secību, un tās veido teksta failu. Katra faila rinda tiek pabeigta ar īpašu rakstzīmi, ko sauc par EOL vai Rindas beigas rakstzīmes patīk komats {,} vai jaunrindas rakstzīme. Tas beidz pašreizējo rindu un paziņo tulkam, ka ir sākusies jauna. Sāksim ar failu lasīšanu un rakstīšanu.
Failu apstrādes priekšrocības programmā Python
- Daudzpusība : failu apstrāde programmā Python ļauj veikt dažādas darbības, piemēram, izveidot, lasīt, rakstīt, pievienot, pārdēvēt un dzēst failus.
- Elastīgums : failu apstrāde programmā Python ir ļoti elastīga, jo tā ļauj strādāt ar dažādiem failu tipiem (piemēram, teksta failiem, binārajiem failiem, CSV faili u.c.), kā arī veikt dažādas darbības ar failiem (piemēram, lasīt, rakstīt, pievienot utt.).
- Lietotājs – draudzīgs : Python nodrošina lietotājam draudzīgu saskarni failu apstrādei, atvieglojot failu izveidi, lasīšanu un manipulēšanu ar tiem.
- Starpplatformu : Python failu apstrādes funkcijas darbojas dažādās platformās (piemēram, Windows, Mac, Linux), nodrošinot netraucētu integrāciju un saderību.
Failu apstrādes trūkumi programmā Python
- Ar kļūdām: Failu apstrādes darbībās Python var rasties kļūdas, īpaši, ja kods nav rūpīgi uzrakstīts vai ja ir problēmas ar failu sistēmu (piemēram, failu atļaujas, failu bloķēšana utt.).
- Drošības riski : Failu apstrāde Python var radīt arī drošības riskus, īpaši, ja programma pieņem lietotāja ievadi, ko var izmantot, lai piekļūtu vai modificētu sensitīvus failus sistēmā.
- Sarežģītība : failu apstrāde programmā Python var būt sarežģīta, it īpaši, strādājot ar sarežģītākiem failu formātiem vai operācijām. Rūpīga uzmanība jāpievērš kodam, lai nodrošinātu, ka faili tiek pareizi un droši apstrādāti.
- Performance : Failu apstrādes darbības Python var būt lēnākas nekā citās programmēšanas valodās, it īpaši, strādājot ar lieliem failiem vai veicot sarežģītas darbības.
Šajā rakstā mēs apsvērsim sekojošo geeks.txt failu kā piemēru.
Hello world techcodeview.com 123 456>
Python faila atvēršana
Pirms veikt jebkādas darbības ar failu, piemēram, lasīšanu vai rakstīšanu, vispirms mums ir jāatver šis fails. Šim nolūkam mums vajadzētu izmantot Python iebūvēto funkciju atvērt () bet atvēršanas brīdī mums ir jānorāda režīms, kas atspoguļo atvēršanas faila mērķi.
f = open(filename, mode)>
Kur tiek atbalstīts šāds režīms:
- r: atveriet esošu failu lasīšanas darbībai.
- Vietnē: atveriet esošu failu rakstīšanas darbībai. Ja failā jau ir daži dati, tas tiks ignorēts, bet, ja faila nav, tas arī izveido failu.
- a: atveriet esošu failu pievienošanas darbībai. Tas neaizstās esošos datus.
- r+: Lai lasītu un ierakstītu datus failā. Iepriekšējie dati failā tiks ignorēti.
- w+: Lai rakstītu un lasītu datus. Tas ignorēs esošos datus.
- a+: Lai pievienotu un lasītu datus no faila. Tas neaizstās esošos datus.
Darbs lasīšanas režīmā
Ir vairāk nekā viens veids, kā Kā nolasīt no faila programmā Python . Ļaujiet mums redzēt, kā mēs varam lasīt faila saturu lasīšanas režīmā.
pārdēvējiet Linux direktorijā
1. piemērs: Atvēršanas komanda atvērs Python failu lasīšanas režīmā, un cilpa for izdrukās katru failā esošo rindiņu.
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)> |
>
>
Izvade:
Hello world techcodeview.com 123 456>
2. piemērs: Šajā piemērā mēs izvilksim virkni, kurā ir visas Python faila rakstzīmes, un to varēsim izmantot file.read() .
Python3
# Python code to illustrate read() mode> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read())> |
>
>
Izvade:
Hello world techcodeview.com 123 456>
3. piemērs: Šajā piemērā mēs redzēsim, kā mēs varam lasīt failu, izmantojot ar paziņojums, apgalvojums programmā Python.
Python3
# Python code to illustrate with()> with> open> (> 'geeks.txt'> ) as> file> :> > data> => file> .read()> print> (data)> |
>
>
Izvade:
Hello world techcodeview.com 123 456>
4. piemērs: Vēl viens veids, kā nolasīt failu, ir izsaukt noteiktu skaitu rakstzīmju, piemēram, šajā kodā tulks nolasīs pirmās piecas saglabāto datu rakstzīmes un atgriezīs to kā virkni:
Python3
# Python code to illustrate read() mode character wise> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read(> 5> ))> |
>
>
Izvade:
Hello>
5. piemērs: Mēs varam arī sadalīt līnijas, lasot failus Python. Funkcija split () sadala mainīgo, kad rodas vieta. Varat arī sadalīt, izmantojot jebkuras rakstzīmes, kā vēlaties.
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)> |
>
>
Izvade:
['Hello', 'world'] ['techcodeview.com'] ['123', '456']>
Faila izveide, izmantojot funkciju write ().
Tāpat kā faila lasīšana programmā Python, ir vairāki veidi, kā to izdarīt Rakstīšana failā programmā Python . Apskatīsim, kā mēs varam ierakstīt faila saturu, izmantojot Python funkciju write ().
Darbs rakstīšanas režīmā
Apskatīsim, kā izveidot failu un kā darbojas rakstīšanas režīms.
1. piemērs: Šajā piemērā mēs redzēsim, kā rakstīšanas režīms un rakstīšanas () funkcija tiek izmantota, lai rakstītu failā. Komanda close() pārtrauc visus izmantotos resursus un atbrīvo šīs konkrētās programmas sistēmu.
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()> |
bināro koku veidi
>
>
Izvade:
This is the write commandIt allows us to write in a particular file>
2. piemērs: Mēs varam izmantot arī rakstisko paziņojumu kopā ar funkciju with ().
Python3
# Python code to illustrate with() alongwith write()> with> open> (> 'file.txt'> ,> 'w'> ) as f:> > f.write(> 'Hello World!!!'> )> |
>
>
Izvade:
Hello World!!!>
Pievienošanas režīma darbība
Apskatīsim, kā darbojas pievienošanas režīms.
Piemērs: Šajā piemērā mēs izmantosim Python failu, kas izveidots iepriekšējā piemērā.
Python3
# Python code to illustrate append() mode> file> => open> (> 'geek.txt'> ,> 'a'> )> file> .write(> 'This will add this line'> )> file> .close()> |
>
>
Izvade:
This is the write commandIt allows us to write in a particular fileThis will add this line>
Python failu apstrādē ir arī dažādas citas komandas, kas tiek izmantotas dažādu uzdevumu veikšanai:
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.>
Tas ir izstrādāts, lai nodrošinātu daudz tīrāku sintaksi un izņēmumu apstrādi, kad strādājat ar kodu. Tas izskaidro, kāpēc ir laba prakse tos izmantot kopā ar paziņojumu, ja nepieciešams. Tas ir noderīgi, jo, izmantojot šo metodi, visi atvērtie faili tiks automātiski aizvērti pēc to pabeigšanas, tāpēc tiek veikta automātiskā tīrīšana.
Visu failu apstrādes funkciju ieviešana
Šajā piemērā mēs apskatīsim visus iepriekš aprakstītos jēdzienus. Izņemot tos, mēs arī redzēsim, kā mēs varam izdzēst failu, izmantojot Python funkciju Remove (). os modulis .
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)> |
>
>
Izvade:
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.>