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ä