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

Python:将文本文件转换为二进制文件,python,binaryfiles,binary-data,Python,Binaryfiles,Binary Data,我们可以把任何数字文件转换成二进制文件 我有一个1MB的文本文件 我想将其转换为二进制字符串,并将输出视为二进制数,反之亦然 换句话说,如果我有二进制数,我想将其转换为文本文件。 在Python中如何实现这一点?有没有标准的方法可以做到这一点 现在在这个论坛上有一些帖子(, )但是没有一个能正确回答我的问题。请参阅标准字符串编码列表,因为转换取决于编码 这些函数将帮助在字节/整数和字符串之间进行转换,默认为UTF-8 提供的示例使用了韩语字符“한" 在UTF-8中 def bytes_to_s

我们可以把任何数字文件转换成二进制文件

我有一个1MB的文本文件

我想将其转换为二进制字符串,并将输出视为二进制数,反之亦然

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

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

现在在这个论坛上有一些帖子(, )但是没有一个能正确回答我的问题。

请参阅标准字符串编码列表,因为转换取决于编码

这些函数将帮助在字节/整数和字符串之间进行转换,默认为UTF-8

提供的示例使用了韩语字符“한" 在UTF-8中


def bytes_to_string(byte_或_int_值,编码='utf-8')->str:
如果isinstance(字节或整数值,字节):
返回字节或整数。解码(编码)
如果isinstance(字节或int值,int):
返回chr(字节或整数值)。编码(编码)。解码(编码)
其他:
raise VALUERROR('错误:输入必须是字节或整数类型')
def string_到_字节(string_值,编码='utf-8')->字节:
如果isinstance(字符串值,str):
返回字节(字符串\值.encode(编码))
其他:
raise VALUERROR('错误:输入必须是字符串类型')
int_值=54620
字节\u值=b'\x\x95\x9C'
字符串\ u值=한'
断言字节到字符串(int值)=字符串值
断言字节到字符串(字节值)=字符串值
断言字符串\u到\u字节(字符串\u值)=字节\u值
提到的“文本文件”似乎是指ASCII文件(其中每个字符占用8位空间)

第二行“将其转换为二进制字符串”可能意味着文本文件的ASCII表示,给出一个字节序列“作为二进制数输出”(类似于加密前的公钥加密),例如

将给出二进制(数字)字符串:
01000001100001000001100100001000100100100100000

十进制数为:
1094861600

第三行表示对二进制数进行(字节)排序,并显示等效的ASCII字符(对于每个8位序列),例如0x41,以“a”替换(作为输出)(此处的假设是每个数字将映射到可打印的ASCII字符,即文本字符,且给定的二进制数具有8位的倍数)

例如,要反转(将二进制数转换为文本):

将给出文本:
ABC!

对于1MB文本文件,您可以将文本字符串拆分为计算机可以处理的块,例如32位(转换前)


中测试,这是否回答了您的问题?@NorthernSage我不知道它是如何回答的“如果我有二进制数,我想将其转换为文本文件“。嗯,二进制文件和文本文件都包含一系列位,文本文件中的位表示字符,而二进制文件中的位表示自定义数据。所以最后,一切都是二进制的,重要的是如何在脚本中解释数据。将“二进制数转换为文本文件”有点令人困惑。是否要将数字的二进制表示形式以字符串格式保存在文本文件中?请给出一些你想转换成什么格式的例子;只是应该用不同的措辞,这样才能让技术头脑能够理解并回答这个问题。
text = 'ABC '
for x in text:
  print(format(ord(x), '08b'), end='')
binary = "01000001010000100100001100100001"
#number of characters in text
num = len(binary)/8 

for x in range(int(num)):
  start = x*8
  end = (x+1)*8
  print (chr(int(str(binary[start:end]),2)), end='')
print()