Ces chaînes sont en fait juste la représentation visuelle des valeurs de ces octets ascii, alors vous devriez vraiment être de les stocker dans bytes like objets (qui devrait être le type par défaut que vous recevez TCP/UDP données dans). Si vous recevez littéralement un fichier JPG sur le réseau, tout ce que vous avez à faire est d'écrire ces octets dans un fichier binaire, ala open("file_name.jpg", "wb")
et assurez-vous que le nouveau fichier que vous avez créé a l'extension .jpg. Si les données sont les mêmes, elles seront interprétées de la même manière que les anciens fichiers jpg, quel que soit le support sur lequel vous les avez envoyés. Il est important de les stocker dans des tableaux d'octets ou similaires, car vous voulez vous assurer que les données que vous avez reçues sont réellement écrites en tant que valeur binaire physique, et non une version textuelle de cette chaîne.
Il existe un seul type de fichier, à savoir le fichier binaire. Même les fichiers texte sont des fichiers binaires. Mais nous séparons l'idée de "lisible par l'homme" et de "binaire" en format binaire et en format texte. Un fichier python, tous les formats .txt, ce sont tous des fichiers texte utilisant cette convention. Un jpg, png, un programme compilé, ou fondamentalement n'importe quel code dont la représentation ne peut pas être analysée via ASCii, UDP-8, 16, 32, 64 etc, ou toute autre représentation textuelle est un fichier binaire. La chose à propos des fichiers est, parce qu'ils sont tous binaires, ils sont interprétés en fonction de ce que vous dites à un autre programme (d'où les extensions de fichiers), et même si le programme le permet, vous pouvez simplement ignorer l'extension et dites simplement à votre éditeur "interpréter ceci comme un fichier X".