よぴやまの自由帳

いろいろなめも

Python で文字列 -> int, int -> 文字列

Pythonで数値の形式じゃない文字列をintにするときにちょっとよくわからなかったのでメモっておきます.

import binascii
string = "Hello"
> Hello

a = binascii.hexlify(string.encode('utf-8'))
> b'48656c6c6f'

b = int.from_bytes(a, "little")
> 482684654443227096954932

これで文字列を一旦byteに変換してそれをintに変換することでstr -> intができます.

c = b.to_bytes((b.bit_length()+7) // 8, "little")
> b'48656c6c6f'

d = binascii.unhexlify(c).decode('utf-8')
> Hello

戻すときはintをbyteに変換してそれを文字列にします.最終的にint -> strとなります.