Python suteikia integruotas funkcijas, skirtas failams kurti, rašyti ir skaityti. Yra dviejų tipų failai, kuriuos galima tvarkyti naudojant python: įprasti tekstiniai failai ir dvejetainiai failai (rašyti dvejetaine kalba, 0 ir 1).
- Teksto failai: šio tipo failuose kiekviena teksto eilutė baigiama specialiu simboliu, vadinamu EOL (Eilutės pabaiga), kuris pagal numatytuosius nustatymus yra naujas python eilutės simbolis ('
'). Dvejetainiai failai: šio tipo failuose nėra eilutės pabaigos ir duomenys išsaugomi juos konvertavus į mašininiu būdu suprantamą dvejetainę kalbą.
Pastaba: Norėdami sužinoti daugiau apie failų tvarkymą paspauskite čia .
Turinys
Prieigos režimas
Prieigos režimai reguliuoja atidarytame faile galimų operacijų tipą. Tai nurodo, kaip failas bus naudojamas jį atidarius. Šie režimai taip pat nustato failo rankenos vietą faile. Failo rankena yra tarsi žymeklis, nurodantis, iš kur faile turi būti skaitomi arba įrašomi duomenys. Skirtingi failo skaitymo prieigos režimai yra:
- Tik rašymas („w“): atidarykite failą rašymui. Esamo failo duomenys sutrumpinami ir perrašomi. Rankena yra failo pradžioje. Sukuria failą, jei failo nėra. Rašyti ir skaityti („w+“): atidarykite failą skaitymui ir rašymui. Esamo failo duomenys sutrumpinami ir perrašomi. Rankena yra failo pradžioje. Tik pridėti („a“): atidarykite failą rašymui. Failas sukuriamas, jei jo nėra. Rankena yra failo gale. Rašomi duomenys bus įterpiami pabaigoje, po esamų duomenų.
Pastaba: Norėdami sužinoti daugiau apie prieigos režimą paspauskite čia .
Failo atidarymas
Tai atliekama naudojant funkciją open(). Šiai funkcijai nereikia importuoti modulio. Sintaksė:
File_object = open(r'File_Name', 'Access_Mode')>
Failas turi būti tame pačiame kataloge kaip ir python programos failas, failo pavadinimo vietoje turi būti parašytas visas failo adresas. Pastaba: R dedamas prieš failo pavadinimą, kad failo pavadinimo eilutėje esantys simboliai nebūtų traktuojami kaip specialieji simboliai. Pavyzdžiui, jei failo adresu yra emp, tada yra traktuojamas kaip skirtuko simbolis, o neteisingo adreso klaida iškeliama. R paverčia eilutę neapdorota, tai yra, ji nurodo, kad eilutė yra be jokių specialių simbolių. R gali būti nepaisoma, jei failas yra tame pačiame kataloge, o adresas nepateikiamas.
Python3
atsiskaitymas git
# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'w')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'w>+>')> |
>
>
Čia failas1 sukuriamas kaip MyFile1 objektas, o failas2 - kaip objektas MyFile2.
Failo uždarymas
Funkcija close() uždaro failą ir atlaisvina to failo užimtą atminties vietą. Jis naudojamas tuo metu, kai failas nebereikalingas arba jei jis turi būti atidarytas kitu failo režimu. Sintaksė:
File_object.close()>
Python3
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'w')> file1.close()> |
>
>
Rašymas į failą
Yra du būdai, kaip rašyti į failą.
- write() : įterpia eilutę str1 į vieną teksto failo eilutę.
File_object.write(str1)>
- writelines() : eilutės elementų sąrašui kiekviena eilutė įterpiama į tekstinį failą. Naudojamas įterpti kelias eilutes vienu metu.
File_object.writelines(L) for L = [str1, str2, str3]>
Pastaba: „ “ traktuojamas kaip specialus dviejų baitų simbolis. Pavyzdys:
Python3
# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi
', 'This>is> Paris
', 'This>is> London
']> s>=> 'Hello
'> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()> |
>
>
Išvestis:
Hello This is Delhi This is Paris This is London>
Pridedamas prie failo
Kai failas atidaromas pridėjimo režimu, rankena yra failo gale. Rašomi duomenys bus įterpiami pabaigoje, po esamų duomenų. Pažiūrėkime toliau pateiktą pavyzdį, kad paaiškintume skirtumą tarp rašymo režimo ir pridėjimo režimo.
Python3
# Python program to illustrate> # Append vs write mode> file1>=> open>('myfile.txt', 'w')> L>=> ['This>is> Delhi
', 'This>is> Paris
', 'This>is> London
']> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>('myfile.txt', 'a')># append mode> file1.write('Today
')> file1.close()> file1>=> open>('myfile.txt', 'r')> print>('Output of Readlines after appending')> print>(file1.read())> print>()> file1.close()> # Write-Overwrites> file1>=> open>('myfile.txt', 'w')># write mode> file1.write('Tomorrow
')> file1.close()> file1>=> open>('myfile.txt', 'r')> print>('Output of Readlines after writing')> print>(file1.read())> print>()> file1.close()> |
>
>
Išvestis:
sdlc gyvavimo ciklas
Output of Readlines after appending This is Delhi This is Paris This is London Today Output of Readlines after writing Tomorrow>
Su pareiškimu
su pareiškimu Python yra naudojamas išimčių tvarkymui, kad kodas būtų švaresnis ir lengviau skaitomas. Tai supaprastina bendrų išteklių, pvz., failų srautų, valdymą. Skirtingai nuo aukščiau pateiktų diegimų, naudojant su sakiniu, nereikia iškviesti file.close(). Pats su teiginys užtikrina tinkamą išteklių įsigijimą ir išleidimą. Sintaksė:
with open filename as file:>
Python3
# Program to show various ways to> # write data to a file using with statement> L>=> ['This>is> Delhi
', 'This>is> Paris
', 'This>is> London
']> # Writing to file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello
')> >file1.writelines(L)> # Reading from file> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading form a file> >print>(file1.read())> |
>
>
Išvestis:
Hello This is Delhi This is Paris This is London>
Pastaba: norėdami sužinoti daugiau apie pareiškimą, spustelėkite čia.
eilutę į datą
naudojant teiginį:
žingsniai:
Norėdami įrašyti į failą Python naudodami už sakinį, galite atlikti šiuos veiksmus:
Atidarykite failą naudodami funkciją open() su atitinkamu režimu („w“ rašymui).
Naudokite teiginį for, kad perjungtumėte duomenis, kuriuos norite įrašyti į failą.
Norėdami įrašyti duomenis į failą, naudokite failo objekto rašymo () metodą.
Uždarykite failą naudodami failo objekto close() metodą.
Šiame pavyzdyje failas atidaromas rašymui naudojant su open ('file.txt', 'w') kaip f teiginį. Duomenys, kuriuos reikia įrašyti, yra saugomi sąraše, vadinamame duomenimis. Teiginys for naudojamas kiekvienai sąrašo duomenų eilutei apsukti. Teiginys f.write(line + ‘ ’) kiekvieną duomenų eilutę įrašo į failą su naujos eilutės simboliu ( ) pabaigoje. Galiausiai failas automatiškai uždaromas, kai baigiasi blokas su.
Python3
# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> '
'>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends> |
>
>Išvestis
This is the first line This is the second line This is the third line>
Metodas:
Kodas atidaro failą failas.txt rašymo režimu, naudodamas bloką su, kad užtikrintų, jog failas būtų tinkamai uždarytas, kai blokas baigiasi. Jis apibrėžia eilučių, vadinamų duomenimis, sąrašą, kuris reiškia eilutes, kurias reikia įrašyti į failą. Tada kodas naudoja for kilpą, kad kartotų kiekvieną duomenų eilutę, ir kiekvieną eilutę įrašo į failą, naudodamas rašymo () metodą. Kodas prie kiekvienos eilutės prideda naujos eilutės simbolį, kad užtikrintų, jog kiekviena eilutė būtų įrašyta naujoje failo eilutėje. Kodas pasirinktinai spausdina kiekvieną eilutę, kai ji įrašoma į failą.
Laiko sudėtingumas:
Tiek pradinio kodo, tiek alternatyvaus kodo laiko sudėtingumas yra O(n), kur n yra eilučių, kurias reikia įrašyti į failą, skaičius. Taip yra todėl, kad abu kodai turi būti kartojami per kiekvieną duomenų sąrašo eilutę, kad būtų įrašyti į failą.
Erdvės sudėtingumas:
Pradinio kodo ir alternatyvaus kodo erdvės sudėtingumas yra toks pat O(n), kur n yra eilučių, kurias reikia įrašyti į failą, skaičius. Taip yra todėl, kad abu kodai turi sukurti eilučių sąrašą, atitinkantį eilutes, kurias reikia įrašyti į failą.