J'utilise maintenant le module python base64 pour décoder un fichier XML codé en base64, ce que j'ai fait pour trouver chacune des données (il y en a des milliers comme pour exmaple dans "ABC .. .. ", le" ABC ... "était les données codées base64) et l'ajouter à une chaîne, disons s, puis j'utilise base64.b64decode (s) pour obtenir le résultat, je ne suis pas sûr du résultat de le décodage, était-ce une chaîne, ou des octets? De plus, comment devrait-on convertir ces données décodées de ce que l'on appelle "l'ordre des octets du réseau" en un "ordre des octets de l'hôte"? Merci!Python base64 data decode et byte order convert
Répondre
Chaque chaîne encodée en base64 doit être décodée séparément - vous ne pouvez pas concaténer des chaînes codées (et obtenir un décodage correct).
Le résultat du décodage est une chaîne de byte-buffer - en Python, ils sont équivalents. En ce qui concerne l'ordre réseau/hôte - les séquences d'octets n'ont pas un tel 'ordre' (ou endianité) - cela n'a d'importance que si l'on interprète ces octets comme des mots/ints de plus grande largeur (plus de 8 bits).
Les données de base 64, codées ou non, sont stockées dans des chaînes. L'ordre des octets est seulement un problème si vous traitez avec des non-caractères (int int, short, long, float, etc.), et je ne sais pas comment cela se rapportera à ce problème. En outre, je ne pense pas que la concaténation des chaînes codées en base64 soit valide.
>>> from base64 import *
>>> b64encode("abcdefg")
'YWJjZGVmZw=='
>>> b64decode("YWJjZGVmZw==")
'abcdefg'
>>> b64encode("hijklmn")
'aGlqa2xtbg=='
>>> b64decode("aGlqa2xtbg==")
'hijklmn'
>>> b64decode("YWJjZGVmZw==aGlqa2xtbg==")
'abcdefg'
>>> b64decode("YWJjZGVmZwaGlqa2xtbg==")
'abcdefg\x06\x86\x96\xa6\xb6\xc6\xd6\xe0'
Oui, je vois votre exemple, cela ne fonctionnerait pas avec la concaténation d'une chaîne car ils ont certains formats . J'ai copié une donnée complètement (des milliers d'entre eux dans un fichier XML) dans un fichier texte et décodée par un décodeur web base64, le résultat est un fichier bin. que dois-je faire si je voudrais savoir ce qu'il y a dans ces données encodées s'il vous plaît? – ligwin
Ce mec a un bon analyseur basé de b64decode python http://groups.google.com/group/spctools-discuss/browse_thread/thread/a8afd04e1a04cde4
pointe-listes Extraction de mzXML dans "Python"
Merci! Oui, je pense que mon processus est: trouver une donnée encodée, puis l'ajouter à une chaîne vide, puis la décoder, maintenir le résultat dans un conteneur, dire une liste; puis videz la chaîne et trouvez les prochaines données encodées, cela vous convient-il? – ligwin
Cela semble raisonnable, bien que si vous postez un peu plus d'informations (par exemple une partie de votre code, à quoi ressemble votre fichier XML, etc.) vous obtiendrez de meilleures réponses. – adamk
Je ne sais pas comment lui donner un bon format. Les données sont trop grandes pour être postent complètement ici, cependant, j'ai gardé le format original de comment il ressemble . Il ya généralement des milliers de "scan" qui ressemble comme ceci dans le fichier XML, les données sont "Q5YACqAAAA ....." – ligwin