Hoe een bestand openen voor zowel lezen als schrijven?

Is er een manier om een bestand te openen voor zowel lezen als schrijven?

Als tijdelijke oplossing open ik het bestand om te schrijven, sluit ik het en open ik het opnieuw om te lezen. Maar is er een manier om een bestand te openen voor zowellezen als schrijven?


Antwoord 1, autoriteit 100%

Zo leest u een bestand en schrijft u er vervolgens naar (bestaande gegevens overschrijven), zonder te sluiten en opnieuw te openen:

with open(filename, "r+") as f:
    data = f.read()
    f.seek(0)
    f.write(output)
    f.truncate()

Antwoord 2, autoriteit 44%

Samenvatting van het I/O-gedrag

|          Mode          |  r   |  r+  |  w   |  w+  |  a   |  a+  |
| :--------------------: | :--: | :--: | :--: | :--: | :--: | :--: |
|          Read          |  +   |  +   |      |  +   |      |  +   |
|         Write          |      |  +   |  +   |  +   |  +   |  +   |
|         Create         |      |      |  +   |  +   |  +   |  +   |
|         Cover          |      |      |  +   |  +   |      |      |
| Point in the beginning |  +   |  +   |  +   |  +   |      |      |
|    Point in the end    |      |      |      |      |  +   |  +   |

en de beslissingstak


Antwoord 3, autoriteit 14%

r+is de canonieke modus voor lezen en schrijven tegelijk. Dit is niet anders dan het gebruik van de fopen()systeemaanroep, aangezien file()/ open()slechts een klein omhulsel is rond dit besturingssysteem bellen.


Antwoord 4, autoriteit 7%

Ik heb zoiets geprobeerd en het werkt zoals verwacht:

f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()

Waar:

F.READ (GROOTTE) – Om de inhoud van een bestand te lezen, belt u F.READ (GROOTTE), welke
Leest enige hoeveelheid gegevens en retourneert het als een tekenreeks.

en:

F.Write (string) schrijft de inhoud van het string naar het bestand, terug
Geen.

Ook als u opent python tutorial over het lezen en schrijven van bestanden u vind dat:

‘R +’ opent het bestand voor zowel lezen als schrijven.

Op Windows, ‘B’ is toegevoegd aan de modus het bestand in de binaire modus, dus
Er zijn ook modi zoals ‘rb’, ‘wb’ en ‘r + b’.

Other episodes