将任何文件转换为二进制 1 和 0,然后在 python 中无损坏地返回原始文件

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

我在这里需要一点帮助,不要问我为什么这是一个疯狂的想法,但我想将任何文件转换为纯二进制代码 1 和 0,然后再转换回原始文件。要求是在转换时,二进制代码需要以字符串数据类型存储在变量中,并且接收二进制代码的函数也接受字符串数据类型的代码。我很感激 python 中的解决方案,但也欢迎使用其他语言。

我尝试这样做,但是当我转换回原始文件时,它总是损坏。我试图将它转换为十六进制,然后再转换为二进制,但我无法实现。

python string algorithm binary low-level
1个回答
0
投票

这里有一个 Python 代码示例,可以将任何文件转换为二进制代码字符串,然后再转换回原始文件:

def file_to_binary_string(file_path):
    with open(file_path, 'rb') as file:
        binary_code = file.read()
        binary_string = ''.join(format(byte, '08b') for byte in binary_code)
    return binary_string
def binary_string_to_file(binary_string, file_path):
    with open(file_path, 'wb') as file:
        bytes_list = [int(binary_string[i:i+8], 2) for i in range(0, len(binary_string), 8)]
        bytes_arr = bytearray(bytes_list)
        file.write(bytes_arr)
# Usage example
file_path = 'example.pdf'
binary_string = file_to_binary_string(file_path)
binary_string_to_file(binary_string, 'new_example.pdf')
© www.soinside.com 2019 - 2024. All rights reserved.