Skaitant arba rašant į failą prieigos režimas nustato galimų operacijų tipą atidarytame faile. Tai nurodo, kaip failas bus naudojamas jį atidarius. Šie režimai taip pat nustato failo rankenos vietą faile. Šių prieigos režimų apibrėžimas yra toks:
- Tik pridėti („a“): atidarykite failą rašymui. Pridėti ir skaityti („a+“): atidarykite failą skaitymui ir rašymui.
Kai failas atidaromas pridėjimo režimu Python , rankena yra failo gale. Rašomi duomenys bus įterpiami pabaigoje, po esamų duomenų.
1 pavyzdys: „Python“ programa, iliustruojanti Pridėti ir rašymo režimą.
Python3
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()> |
>
kaip rasti užblokuotus numerius android
>
Išvestis:
Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>
2 pavyzdys: Pridėti duomenis iš naujos eilutės
Aukščiau pateiktame pavyzdyje failų tvarkymas , matyti, kad duomenys nėra pridedami iš naujos eilutės. Tai galima padaryti į failą įrašius naujos eilutės simbolį „ “.
Python3
# Python program to illustrate> # append from new line> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> # append mode> file1>=> open>(>'myfile.txt'>,>'a'>)> # writing newline character> file1.write(>'
'>)> file1.write(>'Today'>)> # without newline character> file1.write(>'Tomorrow'>)> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()> |
plsql
>
>
Išvestis:
Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>
Pastaba: „ “ traktuojamas kaip specialus dviejų baitų simbolis.
3 pavyzdys: Naudojant teiginį Python
su pareiškimu 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ą.
Python3
# Program to show various ways to> # append 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)> # Appending to file> with>open>(>'myfile.txt'>,>'a'>) as file1:> >file1.write(>'Today'>)> # Reading from file> with>open>(>'myfile.txt'>,>'r+'>) as file1:> ># Reading form a file> >print>(file1.read())> |
>
>
kaip susieti beats ausines
Išvestis:
Hello This is Delhi This is Paris This is London Today>
Pastaba: Norėdami sužinoti daugiau apie tai su pareiškimu paspauskite čia .
„Shuil“ modulio naudojimas:
Šis metodas naudoja shutil.copyfileobj() metodą kito failo (source_file) turiniui pridėti prie „file.txt“. Tai gali būti naudinga, jei norite pridėti vieno failo turinį prie kito, prieš tai neperskaitydami turinio į atmintį.
Metodas:
Kodas naudoja funkciją shutil.copyfileobj() objekto šaltinio_failo turiniui nukopijuoti į naują failą failas.txt. Teiginys with naudojamas failui atidaryti ir automatiškai uždaryti naudojant failo objektą f.
Laiko sudėtingumas:
Funkcijos shutil.copyfileobj() laiko sudėtingumas yra proporcingas kopijuojamo failo dydžiui, nes jai reikia skaityti ir rašyti kiekvieną failo baitą. Todėl kodo sudėtingumas laike yra O(n), kur n yra šaltinio_failo dydis.
Erdvės sudėtingumas:
Kodo erdvės sudėtingumas yra O(1), nes jis neskiria jokios papildomos atminties, išskyrus tai, ko reikia failų objektams source_file ir f. Funkcija shutil.copyfileobj() kopijuoja failo turinį dalimis, todėl nereikia iš karto įkelti viso failo į atmintį.
Apskritai kodas turi linijinį laiko sudėtingumą ir pastovų erdvės sudėtingumą, kai laiko sudėtingumas yra proporcingas kopijuojamo failo dydžiui.
Python3
import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)> |
>
>