web-dev-qa-db-fra.com

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

Code:

file('pinax/media/a.jpg', 'wb')
77
zjm1126

mode fichier , écriture et binaire. Puisque vous écrivez un fichier .jpg, ça a l'air bien.

Mais si vous êtes censé lire ce fichier jpg, vous devez utiliser 'rb'

Plus d'informations

Sous Windows, "b" ajouté au mode ouvre le fichier en mode binaire. Il existe donc des modes tels que "rb", "wb" et "r + b". Python sous Windows distingue les fichiers texte des fichiers binaires; les caractères de fin de ligne des fichiers texte sont automatiquement légèrement modifiés lors de la lecture ou de l'écriture des données. Cette modification en arrière-plan de la les données de fichier conviennent pour les fichiers texte ASCII), mais les données binaires corrompues seront corrompues comme dans les fichiers JPEG ou EXE.

84
YOU

Le wb indique que le fichier est ouvert pour l'é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 tous les autres fichiers. Sous Windows, toutefois, les fichiers texte sont écrits avec des fins de ligne légèrement modifiées. Cela pose un grave problème lorsqu’il s’agit de fichiers binaires réels, tels que les fichiers exe ou jpg. Par conséquent, lorsque vous ouvrez des fichiers qui ne sont pas supposés être du texte, même sous Unix, vous devez utiliser wb ou rb. Utilisez plain w ou r uniquement pour les fichiers texte.

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

58
Daniel G

C'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 plus d'informations: clicky

6
GlenCrawford