Que signifie " wb " dans ce code, en utilisant Python?

Code:

file('pinax/media/a.jpg', 'wb')
60
demandé sur Peter O. 2010-04-19 11:43:06

4 réponses

mode fichier , écriture et binaire. Depuis que vous êtes à la rédaction d'un .fichier jpg, ça a l'air bien.

mais si vous devez lire ce fichier jpg vous devez utiliser 'rb'

plus d'information

sur Windows, " b " ajouté au mode ouvre le fichier en mode binaire, de sorte il y a aussi des modes comme "rb", "wb", et "r+b". Python sur Windows fait un distinction entre texte et binaire fichier; la fin-de-ligne de caractères dans les fichiers texte sont automatiquement modifiés légèrement lorsque des données sont lues ou écrites. Cette modification des coulisses les données de fichier sont très bien pour le texte ASCII des fichiers, mais ça corrompt les données binaires. comme ça dans les fichiers JPEG ou EXE.

72
répondu YOU 2010-04-19 07:50:53

le wb indique que le fichier est ouvert pour écriture en mode binaire.

sur les systèmes Unix (Linux, Mac OS X, etc.), le mode binaire ne fait rien - ils traitent les fichiers texte de la même manière que les autres fichiers sont traités. Sur Windows, cependant, les fichiers texte sont écrits avec des fins de ligne légèrement modifiées. Cela provoque un problème sérieux lors du traitement de fichiers binaires réels, comme les fichiers exe ou jpg . Par conséquent, lors de l'ouverture des fichiers qui ne sont pas supposé être du texte, même sous Unix, vous devez utiliser wb ou rb . Utilisez simplement w ou r seulement pour les fichiers texte.

référence: http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files

44
répondu Daniel G 2010-04-19 07:52:34

vous devriez également envisager d'utiliser open au lieu de file . file a été déprécié dans Python 2 (Impossible de trouver quelle version) et a été supprimé dans py3k. (merci Scott)

Voir cette question pour plus d'info.

4
répondu Luiz Damim 2017-05-23 12:25:45

Qui est le mode avec lequel vous ouvrez le fichier. "wb" signifie que vous écrivez dans le fichier (w), et que vous écrivez en mode binaire (b).

consultez la documentation pour en savoir plus: clicky

3
répondu GlenCrawford 2010-04-19 07:46:59