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ä