Je voudrais enregistrer des octets dans un fichier, puis lire ce fichier sous forme de texte. Puis-je le faire avec un with? Que dois-je utiliser, wb, r ou wbr?

myBytesVar = b'line1\nline2'
with open('myFile.txt', 'wb') as fw:
    fw.write(myBytesVar)

with open('myFile.txt', 'r') as fr:
    myVar = fr.read()
    print(myVar)
0
Hrvoje T 12 avril 2018 à 09:54

3 réponses

Meilleure réponse

Vous n'avez pas besoin de relire le fichier si vous avez déjà son contenu stocké dans myBytesVar:

myBytesVar = b'line1\nline2'

with open('myFile.txt', 'wb') as fw:
    fw.write(myBytesVar)

myVar = myBytesVar.decode('utf-8')

Le codage Python suppose que lors de la lecture de fichiers en tant que texte sans codage explicite est dépendant de la plateforme, donc je suppose simplement que l'UTF-8 fonctionnera.

2
Blender 12 avril 2018 à 07:18

Voici quelques informations sur le mode à utiliser:

Le mode par défaut est 'r' (ouvert pour la lecture de texte, synonyme de 'rt'). Pour l'accès en lecture-écriture binaire, le mode «w + b» s'ouvre et tronque le fichier à 0 octet. 'r + b' ouvre le fichier sans troncature.

Lisez plus ici. https://docs.python.org/3/library/functions.html# ouvrir

0
toheedNiaz 12 avril 2018 à 07:10

Si vous voulez le faire avec un "avec": Quand vous l'écrivez, "wb" est bon. lorsque vous lisez le fichier essayez-le

myvar = open('MyVar.txt', 'r').read()
print(myvar)
0
Sraw 12 avril 2018 à 07:26