Convertir un octet en sa représentation numérique et vise-versa

Résolu
Bonjour,

J'aimerai faire un système d'encodage en Python et j'aimerai pouvoir lire un fichier quelconque, et le lire octet par octet et récupérer pour chaque octet la représentation numérique (entre 0 et 255 du-coup)

Par exemple:

J'ouvre le fichier test.txt qui contient CCM

je récupère la représentation numérique de C (ex: 75), de C (ex: 75) et de M (ex: 85)

Je ne sais pas si je suis assez clair, mon code doit fonctionner pour tout type de fichier, donc pas de fonction qui altèrent les données comme bin etc..

Merci à vous

6 réponses

  1. Contributeur Ambassadeur
    bonjour,
    qu'as-tu essayé, sur quelle partie de l'exercice bloques-tu?
    tu n'as pas expliqué ce que tu souhaitais que le programme fasse avec la représentation numérique de l'octet.
    1
    1. Bonjour,

      Le but étant d'encoder mes octets via un algorithme que j'ai écrit en parallèle, je bloque au début de la lecture du fichier , à la théorie

      Comment ouvrir un fichier en mode binaire et récupérer tous les octets sous la forme de int
      0
    2. Contributeur Ambassadeur
      @danieljsessecun exemple:
      with open("test.txt", 'rb') as f:
           o=f.read(1)
           while  o !=b"":
              i=int.from_bytes(o,byteorder='big')
              print(i)
              o=f.read(1)
      0
  2. Bonjour,

    Votre réponse est exactement ce qu'il me fallait, je vous en remercie, sauriez-vous désormais comment je pourrai revenir en arrière ? de int à byte ?
    0
    1. Contributeur Ambassadeur
      par exemple:
      entier=65
      octet=entier.to_bytes(1,byteorder='big')
      print(entier,octet)
      0
  3. Ok tout simplement merci beaucoup !

    Pour revenir à mon système d'encodage il fonctionne pas matrice, donc :

    Est-ce possible de convertir en binaire sur 8 bits une int ? Et inversement de récupérer le int du binaire ?
    0
    1. Contributeur Ambassadeur
      pour moi, un octet ou un binaire sur 8 bits, c'est du pareil au même.
      tu n'as rien montré ni expliqué de ce que tu avais réalisé et de ce que tu voulais faire.
      au départ, tu étais très clair; tu avais besoin d'octets.
      0
  4. Bonjour,

    Oui en effet c'est la même chose, au final j'ai tous les éléments pour réaliser mon projet, mise à part l'écriture d'un byte dans un fichier, ça se passe comment ? j'ouvre mon fichier en mode écriture binaire et je fais un simple write avec mon ou mes bytes ?
    0
    1. Contributeur Ambassadeur
      exactement.
      0
  5. En effet je viens de tester, ça fonctionne super bien, pour terminer vous sauriez s'il existe une technique ou une façon de faire pour lire les bytes d'un fichier deux par deux ?
    0
    1. Ou alors si on peut convertir un grand binaire (qu'importe sa taille) en une suite de byte ?
      0
  6. Oubliez ce que je viens de dire suffit de lire la doc de read() ;-)
    0