Python 2.5 преобразовать строку в двоичный файл - PullRequest
3 голосов
/ 18 декабря 2011

Я знаю, что это легко возможно в Python 2.6.Но какой самый простой способ сделать это в Python 2.5?

x = "This is my string"
b = to_bytes(x)  # I could do this easily in 2.7 using bin/ord 3+ could use b"my string"
print b

Есть предложения?Я хочу взять х и превратить его в

0010001001010100011010000110100101110011001000000110100101110011001000000110110101111001001000000110010000100000011001000010000001100100000000001100100000000000011000001000000110000000000000011000001100

Ответы [ 2 ]

6 голосов
/ 10 января 2012

Эта однострочная работа:

>>> ''.join(['%08d'%int(bin(ord(i))[2:]) for i in 'This is my string'])
'0101010001101000011010010111001100100000011010010111001100100000011011010111100100100000011100110111010001110010011010010110111001100111'

EDIT

Вы можете написать bin() сами

def bin(x):
    if x==0:
        return '0'
    else:
        return (bin(x/2)+str(x%2)).lstrip('0') or '0'
0 голосов
/ 26 сентября 2013

Я думаю, что вы могли бы сделать это более чистым способом, как это:

>>>''.join(format(ord(c), '08b') for c in 'This is my string')
'0101010001101000011010010111001100100000011010010111001100100000011011010111100100100000011100110111010001110010011010010110111001100111'

функция форматирования будет представлять символ в 8 цифрах, двоичное представление.

...