Kun luet tai kirjoitat tiedostoa, käyttötila hallitsee avatussa tiedostossa mahdollisten toimintojen tyyppiä. Se viittaa siihen, kuinka tiedostoa käytetään sen avaamisen jälkeen. Nämä tilat määrittävät myös tiedostokahvan sijainnin tiedostossa. Näiden käyttötapojen määritelmä on seuraava:
string.replaceall java
- Vain liite ('a'): Avaa tiedosto kirjoittamista varten. Liitä ja lue ('a+'): Avaa tiedosto lukemista ja kirjoittamista varten.
Kun tiedosto avataan lisäystilassa Pythonissa, kahva on tiedoston lopussa. Kirjoitettava tieto lisätään loppuun olemassa olevien tietojen perään.
Esimerkki 1: Python-ohjelma havainnollistamaan Liitä vs kirjoitustilaa.
Python 3
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()> |
>
>
Lähtö:
Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>
Esimerkki 2: Liitä tiedot uudelta riviltä
Yllä olevassa esimerkissä tiedostojen käsittely , voidaan nähdä, että tietoja ei ole liitetty uudelta riviltä. Tämä voidaan tehdä kirjoittamalla rivinvaihtomerkki ' ' tiedostoon.
Python 3
verkkoarkkitehtuuri
# 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()> |
>
>
Lähtö:
Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>
Huomautus: ' ' käsitellään kahden tavun erikoismerkkinä.
Esimerkki 3: With-lausekkeen käyttö Pythonissa
lausunnon kanssa käytetään poikkeusten käsittelyssä, jotta koodista tulee selkeämpi ja luettavampi. Se yksinkertaistaa yleisten resurssien, kuten tiedostovirtojen, hallintaa. Toisin kuin yllä olevissa toteutuksissa, tiedostoa file.close() ei tarvitse kutsua käytettäessä käskyn kanssa. Itse with-lauseke varmistaa resurssien asianmukaisen hankinnan ja vapauttamisen.
Python 3
# 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())> |
java paikallinen päivämäärä
>
>
Lähtö:
Hello This is Delhi This is Paris This is London Today>
Huomautus: Lisätietoa lausunnosta Klikkaa tästä .
Shutil-moduulin käyttäminen:
Tämä lähestymistapa käyttää shutil.copyfileobj()-menetelmää toisen tiedoston (lähdetiedosto) sisällön liittämiseen tiedostoon.txt. Tästä voi olla hyötyä, jos haluat liittää yhden tiedoston sisällön toiseen ilman, että sinun tarvitsee lukea sisältöä ensin muistiin.
Lähestyä:
Koodi käyttää shutil.copyfileobj()-funktiota kopioimaan lähdetiedosto-objektin sisällön uuteen tiedostoon nimeltä file.txt. with-käskyä käytetään tiedoston avaamiseen ja automaattiseen sulkemiseen käyttämällä tiedostoobjektia f.
Aika monimutkaisuus:
Shutil.copyfileobj()-funktion aikamonimutkaisuus on verrannollinen kopioitavan tiedoston kokoon, koska sen on luettava ja kirjoitettava tiedoston jokainen tavu. Siksi koodin aikamonimutkaisuus on O(n), missä n on lähdetiedoston koko.
Tilan monimutkaisuus:
Koodin tilamonimutkaisuus on O(1), koska se ei varaa lisämuistia sen lisäksi, mitä tarvitaan tiedostoobjekteille lähde_tiedosto ja f. Funktio shutil.copyfileobj() kopioi tiedoston sisällön paloina, joten sen ei tarvitse ladata koko tiedostoa muistiin kerralla.
Kaiken kaikkiaan koodilla on lineaarinen aikamonimutkaisuus ja vakiotilan monimutkaisuus, jolloin aikamonimutkaisuus on verrannollinen kopioitavan tiedoston kokoon.
Python 3
python generoi uuid
import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)> |
>
>