La hex()
fonction en python, met les premiers caractères 0x
devant le nombre. Est-il possible de lui dire de ne PAS les mettre? Il en 0xfa230
sera de même fa230
.
Le code est
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
0x
.Réponses:
>>> format(3735928559, 'x') 'deadbeef'
la source
deadbeef
exemple. Etformat()
c'est la meilleure façon de le faire.Utilisez ce code:
'{:x}'.format(int(line))
il vous permet également de spécifier un certain nombre de chiffres:
'{:06x}'.format(123) # '00007b'
Pour Python 2.6, utilisez
'{0:x}'.format(int(line))
ou
'{0:06x}'.format(int(line))
la source
format()
fonction est plus facile, vous n'utilisez aucune fonctionnalité de création de modèles, uniquement le formatage. Si tout votre modèle contient{:..}
une seule valeur, passez à laformat(value, '..')
place.f.write('{:x}'.format(hex(int(line))))
, il ditValueError: zero length field name in format
format
a besoin d'un int, pas d'une chaîne:f.write('{:x}'.format(int(line)))
Vous pouvez simplement écrire
hex(x)[2:]
pour supprimer les deux premiers caractères.
la source
>>> hex(3735928559)[2:]
'deadbeefL'
x
est négatif.Python 3.6+:
>>> i = 240 >>> f'{i:02x}' 'f0'
la source
Formatage de chaîne de style ancien:
In [3]: "%02x" % 127 Out[3]: '7f'
Nouveau style
In [7]: '{:x}'.format(127) Out[7]: '7f'
L'utilisation de majuscules comme caractères de format donne de l'hexadécimal majuscule
In [8]: '{:X}'.format(127) Out[8]: '7F'
Les documents sont ici.
la source