303 votes

ouvrir le fichier pour la lecture et l'écriture?

Est-il possible d'ouvrir un fichier pour la lecture et l'écriture? J'ai pensé "r+" a été pour que.
Parce que je travaille sur des fichiers binaires, j'ai essayé le mode "r+b", mais j'obtiens une erreur que le fichier n'est pas ouvert pour la lecture.

363voto

Flimm Points 8870

Voici comment lire un fichier, puis d'écrire (d'écraser les données existantes), sans fermeture et la réouverture:

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

49voto

Andreas Jung Points 1

"r+" est le mode canonique de la lecture et de l'écriture en même temps. Ce n'est pas différent de l'utilisation de la fopen() de l'appel système depuis un fichier()/open() est juste un petit wrapper autour de cet appel du système d'exploitation.

24voto

Artsiom Rudzenka Points 9771

J'ai essayé quelque chose comme ça, et il fonctionne comme prévu:

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

Où:

f.lire(à la taille) Pour lire le contenu du fichier, appel de f.lire(taille), ce qui lit une certaine quantité de données et renvoie une chaîne de caractères.

Et:

f.write(string) écrit le contenu de la chaîne dans le fichier, le retour Aucun.

Aussi, si vous ouvrez Python tutoriel sur la lecture et l'écriture de fichiers , vous trouverez:

'r+' ouvre le fichier pour la lecture et l'écriture.

Sur Windows, " b " annexé à la mode ouvre le fichier en mode binaire, de sorte il y a aussi des modes de transport comme le 'rb', 'wb', et "r+b".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X