Python: преобразование текстового файла в двоичный файл - PullRequest
1 голос
/ 15 марта 2020

Мы можем преобразовать любой цифровой файл в двоичный файл.

У меня есть текстовый файл размером 1 МБ,

Я хочу преобразовать его в двоичную строку и увидеть вывод в виде двоичного числа и наоборот,

другими словами, если у меня есть двоичное число, я хочу преобразовать его в текстовый файл.

Как я могу сделать это в Python? Есть ли стандартный способ сделать это?

Теперь в этом форуме есть несколько сообщений ( 1, 2, 3 , 4 ) об этом, но никто из них не отвечает должным образом на мой вопрос.

1 Ответ

0 голосов
/ 15 марта 2020

См. https://docs.python.org/3/library/codecs.html#standard -encodings для списка стандартных кодировок строк, потому что преобразование зависит от кодировки.

Эти функции помогут преобразовать байты / целые и строки в значения по умолчанию UTF-8.

В представленном примере используется символ Hangul "한" в UTF-8.


def bytes_to_string(byte_or_int_value, encoding='utf-8') -> str:
    if isinstance(byte_or_int_value, bytes):
        return byte_or_int_value.decode(encoding)
    if isinstance(byte_or_int_value, int):
        return chr(byte_or_int_value).encode(encoding).decode(encoding)
    else: 
        raise ValueError('Error: Input must be a bytes or int type')

def string_to_bytes(string_value, encoding='utf-8') -> bytes:
    if isinstance(string_value, str):
        return bytes(string_value.encode(encoding))
    else: 
        raise ValueError('Error: Input must be a string type')

int_value = 54620
bytes_value = b'\xED\x95\x9C'
string_value = '한'

assert bytes_to_string(int_value) == string_value
assert bytes_to_string(bytes_value) == string_value
assert string_to_bytes(string_value) == bytes_value
...