Python suteikia integruotas funkcijas, skirtas failams kurti, rašyti ir skaityti. Python gali būti tvarkomi dviejų tipų failai: įprasti tekstiniai failai ir dvejetainiai failai (rašomi dvejetaine kalba, 0 ir 1).
- Tekstiniai 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 terminatoriaus, o duomenys išsaugomi juos konvertavus į mašininiu būdu suprantamą dvejetainę kalbą.
Šiame straipsnyje pagrindinis dėmesys bus skiriamas duomenų atidarymui, uždarymui, skaitymui ir rašymui tekstiniame faile. Čia taip pat pamatysime, kaip gauti Python išvestis tekstiniame faile.
Failų prieigos režimai
Prieigos režimai reguliuoja atidarytame faile galimų operacijų tipą. Tai nurodo, kaip failas bus naudojamas jį atidarius. Šie režimai taip pat apibrėžia vietą Failų rankena byloje. Failo rankena yra tarsi žymeklis, nurodantis, iš kur duomenys turi būti nuskaitomi arba įrašomi į failą, ir mes galime gauti Python išvestį tekstiniame faile.
Python yra 6 prieigos režimai:
- Tik skaityti („r“)
- Skaityti ir rašyti („r+“)
- Tik rašyti („w“)
- Rašykite ir skaitykite („w+“)
- Tik pridėti („a“)
- Pridėti ir skaityti („a+“)
Tik skaitomas („r“): Atidarykite tekstinį failą skaitymui. Rankena yra failo pradžioje. Jei failas neegzistuoja, iškelia įvesties / išvesties klaidą. Tai taip pat numatytasis failo atidarymo režimas.
Skaityti ir rašyti („r+“): Atidarykite failą skaitymui ir rašymui. Rankena yra failo pradžioje. Iškelia įvesties/išvesties klaidą, jei failo nėra.
Rašyti tik („w“): Atidarykite failą rašymui. Esamų failų duomenys sutrumpinami ir perrašomi. Rankena yra failo pradžioje. Sukuria failą, jei failo nėra.
Rašykite ir skaitykite („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ų.
Pridėti ir skaityti („a+“): Atidarykite failą skaitymui ir rašymui. Failas sukuriamas, jei jo nėra. Rankena yra failo gale. Rašomi duomenys bus įterpti pabaigoje, po esamų duomenų.
Kaip failai įkeliami į pirminę atmintį?
Kompiuteryje yra dviejų tipų atmintis, t. y. pirminė ir antrinė atmintis, kiekvienas jūsų išsaugotas failas arba bet kas išsaugotas failas yra antrinėje atmintyje, nes visi duomenys iš pirminės atminties ištrinami, kai kompiuteris išjungiamas. Taigi, kai jums reikia pakeisti bet kurį tekstinį failą arba tiesiog dirbti su jais python, turite įkelti tą failą į pirminę atmintį. Python sąveikauja su failais, įkeliamais į pirminę arba pagrindinę atmintį failų tvarkytojai (Taip jūsų operacinė sistema suteikia prieigą prie python, kad ji sąveikautų su failu, kurį atidarėte ieškodama failo jo atmintyje, jei randama, ji grąžina failų tvarkyklę ir tada galite dirbti su failu ).
Teksto failo atidarymas Python
Tai atliekama naudojant funkciją open(). Šiai funkcijai nereikia importuoti modulio.
File_object = open(r'File_Name','Access_Mode')>
Failas turi būti tame pačiame kataloge kaip ir python programos failas, vietoje failo pavadinimo 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 tabuliavimo simbolis ir atsiranda klaida dėl netinkamo adreso. R daro 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 neįdedamas.
Python
kas yra gb
# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # 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
Teksto failo uždarymas Python
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. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
išteklių paskirstymo grafikas
>
Rašymas į failą Python
Yra du būdai, kaip rašyti faile:
- Naudojant write ()
- Naudojant rašymo eilutes ()
Rašymas į Python tekstinį failą naudojant write ()
rašyti () : Įterpia eilutę str1 į vieną teksto failo eilutę.
File_object.write(str1)>
Rašymas į tekstinį failą naudojant writelines ()
rašymo eilutės () : Stygos elementų sąraše kiekviena eilutė įterpiama į tekstinį failą. Naudojama įterpiant kelias eilutes vienu metu.
File_object.writelines(L) for L = [str1, str2, str3]>
Nuoroda: write() VS writelines()
Skaitymas iš failo Python
Yra trys būdai, kaip skaityti duomenis iš tekstinio failo:
- Naudojant read()
- Naudojant readline()
- Naudojant skaitymo linijos ()
Skaitymas iš failo naudojant read()
skaityti () : Grąžina skaitytus baitus eilutės forma. Nuskaito n baitų, jei nenurodyta n, nuskaito visą failą.
File_object.read([n])>
Teksto failo skaitymas naudojant readline()
readline() : Nuskaito failo eilutę ir grąžina eilutės pavidalu. Nurodyta n nuskaito daugiausia n baitų. Tačiau neskaito daugiau nei vienos eilutės, net jei n viršija eilutės ilgį.
File_object.readline([n])>
Failo skaitymas naudojant readlines ()
skaitymo linijos () : Nuskaito visas eilutes ir grąžina jas kaip eilutės elementą sąraše.
File_object.readlines()>
Pastaba: „ “ traktuojamas kaip specialus dviejų baitų simbolis.
Šiame pavyzdyje failas pavadinimu myfile.txt sukuriamas ir atidaromas rašymo režimu ('w'>). Duomenys įrašomi į failą naudojantwrite>irwritelines>metodus. Tada failas vėl atidaromas skaitymo ir pridėjimo režimu ('r+'>). Įvairios skaitymo operacijos, įskaitantread>,readline>,readlines>, ir naudojimasseek>, parodykite skirtingus būdus, kaip gauti duomenis iš failo. Galiausiai failas uždaromas.
Python3
# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> #
is placed to indicate EOL (End of Line)> file1.write(>'Hello
'>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()> |
lentelių kūrimas iš latekso
>
>
Išvestis:
Output of Read function is Hello This is Delhi This is Paris This is London Output of Readline function is Hello Output of Read(9) function is Hello Th Output of Readline(9) function is Hello Output of Readlines function is ['Hello ', 'This is Delhi ', 'This is Paris ', 'This is London ']>
Pridėti prie failo Python
Šiame pavyzdyje failas pavadinimu myfile.txt iš pradžių atidaromas rašymo režimu ('w'>) rašyti teksto eilutes. Tada failas vėl atidaromas pridėjimo režimu ('a'>), o prie esamo turinio pridedama Šiandien. Išvestis po pridėjimo rodoma naudojantreadlines>. Vėliau failas vėl atidaromas rašymo režimu, perrašant turinį Rytoj. Galutinė išvestis po įrašymo rodoma naudojantreadlines>.
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.readlines())> 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.readlines())> print>()> file1.close()> |
>
>
Išvestis:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Susijęs straipsnis:
- Failų objektai Python