Mitä tiedoston katkaisu tekee, kun avaat tiedoston w + -vaihtoehdolla pythonissa?


Paras vastaus

Kysyt: Mitä tiedoston katkaisu tekee, kun tiedosto avataan pythonissa w + -vaihtoehdolla?

Tiedoston nollaaminen tarkoittaa, että koko sisältö hylätään: tiedoston koko muuttuu 0: ksi, joten se tyhjäksi (ja tiedot ovat kadonneet), mutta tiedosto on edelleen tiedostojärjestelmässä.

UNIX- ja UNIX-tyyppisissä käyttöjärjestelmissä (ja yleensä POSIX-käyttöjärjestelmissä -yhteensopivat käyttöjärjestelmät) on truncate(2) -järjestelmäkutsu, jota voidaan käyttää tiedoston osan tai koko sisällön hylkäämiseen (tiedoston loppupuolella).

Tällaisissa järjestelmissä open(2) -järjestelmäkutsu voidaan määrittää -lippu -parametrilla, joka määrittää O\_TRUNC lippu, joka kertoo, että tiedostosisältö on katkaistava nollaksi sitä avattaessa.

Vastaavasti C-standardin I / O-kirjasto function fopen() voidaan määrittää avaustila w+, joka osoittaa, että tiedosto avataan kirjoitettavaksi ja että se on luotava, jos se ei t on olemassa, tai että se tulisi katkaista nollaan, jos se on jo olemassa.

Ja koska Pythonin open() -funktio toimii samalla tavalla kuin fopen() -toiminto C: ssä w+ tarkoittaa tiedoston sisällön katkaisemista nollan pituiseksi ennen kuin kirjoitat mitään.

Vastaa

kysymys tarvitsee lisää selvitystä. Kuka tekee katkaisun? Sama python-prosessi, joka avasi virran tai jokin muu prosessi? Kirjoittaako python-tiedosto tiedostoon, kun toinen säie / prosessi katkaisee sen? Tapahtuuko katkaisutoiminto silmukassa vai jotain?

Vastaus kysymykseesi riippuu siitä, mitä tiedostossa tapahtuu, kun näitä kirjoitus- ja katkaisutoimintoja tapahtuu.

Myös… protip: älä katso python2-dokumentteja. Katso python3-asiakirjoja. Ja käytä python3 yleensä

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *