Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中输出二进制序列的最佳方法_Python - Fatal编程技术网

在Python中输出二进制序列的最佳方法

在Python中输出二进制序列的最佳方法,python,Python,我有一个二进制序列,例如:10010111010101。我需要将这个序列输出到一个文件中,然后稍后再读取它,但我希望尽可能多地压缩它,最简单的方法是什么 我试着把序列中的每个8位字节放在一起,输出字节值,然后当我稍后读取它时,我一点一点地剪切它,有没有更简单的方法?或者是一个容易做到这一点的模块?二进制数据的最佳文本编码是base64或asci85 ASCII85 导入base64 导入系统 以字节为单位的二进制字符串长度32字节将使您拥有256位二进制字符流 尽可能将其放低以节省空间 长度=3

我有一个二进制序列,例如:10010111010101。我需要将这个序列输出到一个文件中,然后稍后再读取它,但我希望尽可能多地压缩它,最简单的方法是什么


我试着把序列中的每个8位字节放在一起,输出字节值,然后当我稍后读取它时,我一点一点地剪切它,有没有更简单的方法?或者是一个容易做到这一点的模块?

二进制数据的最佳文本编码是base64或asci85

ASCII85

导入base64 导入系统 以字节为单位的二进制字符串长度32字节将使您拥有256位二进制字符流 尽可能将其放低以节省空间 长度=32 二进制字符串=输入“输入二进制字符串:” 整数=求值'0b'+二进制字符串 data=integer.to_byteslength,sys.byteorder,signed=False printbase64.a85encodedata.解码“utf-8” Base64

导入base64 导入系统 以字节为单位的二进制字符串长度32字节将使您拥有256位二进制字符流 尽可能将其放低以节省空间 长度=32 二进制字符串=输入“输入二进制字符串:” 整数=求值'0b'+二进制字符串 data=integer.to_byteslength,sys.byteorder,signed=False printbase64.B64编码数据。解码“utf-8”
警告:通常sys.byteorder是little endian,因此在尝试加载文件时可能会遇到问题。

您实际拥有什么?带1和0的字符串?是否有一些代码可以发布到上下文中?我的目标不是“尽可能”压缩,因为Kolmogrov的复杂性是不可计算的,在压缩所花费的时间和您将获得的压缩比之间有一个折衷。@khelwood我有一个1和0的数组,我可以构造一个字符串或其他任何东西,不要紧,如果你有一个由1和0组成的字符串,你可以将它解析为一个二进制int,然后你只需要一个int即可;它们不会溢出。您可以使用intbinary_字符串2将字符串解析为二进制int。您不需要求助于eval。如果二进制字符串以“0”开头怎么办?这不会在编码过程中丢失吗?示例:000011否,因为字符串的长度是固定的,这里是32字节。如果需要更长的字符串,请更改该值。如果您尝试转换超过该值的值,您将得到一个例外,您的二进制字符串实际上只是用零填充长度,因此对于2字节的长度,11100001111变为0000011100001111。