Python:将文本文件转换为二进制文件

问题描述 投票:1回答:1

我们可以将任何数字文件转换为二进制文件。

我有一个1MB的文本文件,

我想将其转换为二进制字符串,并以二进制数字形式查看输出,反之亦然,

换句话说,如果我有二进制数,我想将其转换为文本文件。

我如何在Python中做到这一点?有没有标准的方法可以做到这一点?

[此论坛现在有一些帖子(1,2,34),但没有一个人能正确回答我的问题。

python binaryfiles binary-data
1个回答
0
投票

请参阅https://docs.python.org/3/library/codecs.html#standard-encodings以获取标准字符串编码的列表,因为转换取决于编码。

这些功能将有助于在字节/整数和字符串之间进行转换,默认为UTF-8。

提供的示例在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
© www.soinside.com 2019 - 2024. All rights reserved.