Comment concaténer des chaînes avec des valeurs binaires en python?
-
06-07-2019 - |
Question
Quel est le moyen le plus simple en python de concaténer une chaîne avec des valeurs binaires?
sep = 0x1
data = ["abc","def","ghi","jkl"]
Recherche des données de résultat "abc0x1def0x1ghi0x1jkl"
avec 0x1 étant la valeur binaire et non la chaîne "0x1".
La solution
Je pense
joined = '\x01'.join(data)
devrait le faire. \ x01
est la séquence d'échappement d'un octet de valeur 0x01.
Autres conseils
La fonction chr () aura pour effet de traduire une variable en chaîne avec la valeur binaire recherchée.
>>> sep = 0x1
>>> sepc = chr(sep)
>>> sepc
'\x01'
La fonction join () peut ensuite être utilisée pour concaténer une série de chaînes avec votre valeur binaire comme séparateur.
>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'
Je sais que ce n'est pas la meilleure méthode, mais une autre manière qui pourrait être utile dans un contexte différent pour la même question est la suivante:
>>> x=(str(bin(0b110011000)))
>>> b=(str(bin(0b11111111111)))
>>> print(x+b)
0b1100110000b11111111111
Et si nécessaire, pour supprimer les deux bits les plus à gauche de chaque chaîne (c'est-à-dire 0b pad), la fonction de tranche [2:]
avec une valeur de 2 fonctionne:
>>> x=(str(bin(0b110011000)[2:]))
>>> b=(str(bin(0b11111111111)[2:]))
>>> print(x+b)
11001100011111111111