字节数组

字节数组是可变的字节序列(整数,其中0≤x≤255)。 您可以从字符串(如果不是字节字符串,则必须提供编码),字节大小的整数的可迭代对象或带有缓冲区接口的对象构造字节数组。 当然,您也可以手动构建它。

使用字节字符串的示例:

string = b'DFH'

b = bytearray(string)

# Print it as a string

print b

# Prints the individual bytes, showing you that it's just a list of ints

print [i for i in b]

# Lets add one to the D

b[0] += 1

# And print the string again to see the result!

print b

结果:

DFH

[68, 70, 72]

EFH

如果要进行原始字节操作,则需要这种类型。 如果您想要将4个字节读取为32位int,则可以使用带有unpack方法的struct模块,但是我通常只是将自己从bytearray中移到一起。

以二进制形式打印标题

您似乎想要的是获取您拥有的字符串,将其转换为字节数组,然后将其打印为以base 2 / binary为字符串的字符串。

因此,这是一个简短的示例,说明如何写出标头(我从名为“ dump”的文件中读取了随机数据):

with open('dump', 'rb') as f:

header = f.read(6)

b = bytearray(header)

print ' '.join([bin(i)[2:].zfill(8) for i in b])

将其转换为字节数组后,我在每个单个字节上调用bin(),它以“ 0b1010”的格式返回一个带有所需二进制表示形式的字符串。 我不希望“ 0b”,所以我用[2:]分割了它。 然后,我使用字符串方法zfill,这使我可以将所需的0数量前置为8的字符串(这是我们需要的位数),因为bin不会显示任何不需要的零。

如果您是该语言的新手,那么最后一行可能看起来很含糊。 它使用列表推导来列出我们要打印的所有二进制字符串的列表,然后将它们连接到最后的字符串中,并在元素之间留有空格。

最后一行的较少pythonic / con卷积变体是:

result = []

for byte in b:

string = bin(i)[2:] # Make a binary string and slice the first two bytes

result.append(string.zfill(8)) # Append a 0-padded version to the results list

# Join the array to a space separated string and print it!

print ' '.join(result)

我希望这有帮助!

python以二进制读取的文件显示b'b'_python - Python读取二进制文件并解码 - 堆栈内存溢出...相关推荐

  1. python中color的用法_python - 如何为热图(使用plt.pcolor创建)中的NaN单元分配特定的颜色或图案,并使其显示在颜色栏中(图colorbar) - 堆栈内存溢出...

    我生成了一个热图 , 该热图在右下角的单元格中缺少值(白色,但是与其他淡紫色的单元格没有明显区别). 我想使用特定的颜色或图案来突出显示此单元格,并提到这种颜色/图案与颜色栏或图例中某处的缺失值相关联 ...

  2. python array太慢_python - gdal ReadAsarray对于vrt非常慢 - 堆栈内存溢出

    迟到了,但这是我根据Rutger的优秀答案写的剧本. 它以某种方式优化了磁贴大小,以便您可以读取最少的块. 这几乎肯定不是你能做的最好的,但我注意到它在处理大小为[1440000 560000]的地理 ...

  3. java字符串转语音文件_java - Java文字转语音(Spring Boot) - 堆栈内存溢出

    我从事的项目是必须使用SpringBoot生成验证码. 我想要一个"文本到语音"功能,并且声音文件必须使用SpringBoot生成(否则这将是一个巨大的安全问题). 我生成了一个验 ...

  4. java 0x5_java - 从Java中的COM端口读取,错误0x5在.. \ rxtx \ src \ termios.c(892) - 堆栈内存溢出...

    我正在用Java编写一个小应用程序来读取COM端口,因为我们使用64位系统,所以我不得不使用RXTX. 问题是,当我尝试运行我的应用程序时,我收到以下错误: "错误0x5在.. \\ rxt ...

  5. Linux中httpd353错误,linux - 由于控制进程退出并显示错误代码,因此httpd.service的作业失败 - 堆栈内存溢出...

    更改00-nova-placement-api.conf ,我正在虚拟机中研究00-nova-placement-api.conf , 我想重启httpd : systemctl restart ht ...

  6. android 电视安装apk文件损坏,android - 无法在Android电视盒上安装APK - 堆栈内存溢出...

    我正在为Android TV编写应用程序. 它可以在模拟器上正常运行,并在Android电视盒上以调试模式运行. 但是,当我使用Android Studio生成apk并尝试将该apk安装在同一盒子上时 ...

  7. 目录打开显示提示文件或目录损坏且无法读取、文件或目录损坏且无法读取的破解之道

    咱们在平日工作时,通常都会将资料放进不同的目录中,方便咱们找到,随着时间的推移就会产生有越来越多目录.最近有位用户了这样一个问题,就是目录无论怎么都无法打开,这样就无法浏览.使用里面的资料了,影响到了 ...

  8. python怎么读取txt文件并统计其字数-python计算文件的行数和读取某一行内容的实现方法...

    一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...

  9. python读取图片文件显示_Python—图像基本操作以及图像格式转换

    关于图像处理的模块常用的有 PIL,openCV等,不过应为要处理 tif 格式的图片,故特来写下这篇博客. 关于安装模块 libtiff 直接pip install libtiff 安装模块,发现无 ...

最新文章

  1. java 限制文本框长度_java中限制文本框输入长度的显示(转载)
  2. 高动态范围图像-单图
  3. Python 基础算法(1) - 算法简介
  4. Ch4302-IntervalGCD【线段树,树状数组,GCD】
  5. Feature selection
  6. 移动应用开发——作业3
  7. python条件控制语句要注意什么_浅析Python 条件控制语句
  8. [android] 与PHP的session进行交互demo
  9. 数据科学 IPython 笔记本 8.17 使用 Seaborn 的可视化
  10. mysql 写入性能瓶颈_如何通过性能调优突破MySQL数据库性能瓶颈?
  11. 用三维Demo看懂各种优化算法,还有C++程序员福音
  12. 多图详解freeBSD8.2安装过程
  13. 【实习记】2014-09-26恢复linux下误删的ntfs盘中的文件
  14. Eclipse @override报错解决
  15. Sim_EKB_Install_2021,TIA V17等西门子资料下载
  16. python输出日历_python输出指定月份日历的方法
  17. 在自己的网站上实现QQ授权登录
  18. MATLAB | 那些你不得不知道的MATLAB小技巧(四)
  19. ch.ethz.ssh2.Session和com.jcraft.jsch.Session
  20. 电商上行大势已定,店宝宝扶持新手开展网店创业

热门文章

  1. vmware ubuntu硬盘空间不够用,空间扩展
  2. A. 面向对象思想介绍
  3. CentOS下搭建Git服务器Gitosis
  4. 关于XP下OpenGL的配置
  5. MySQL 5.0 新特性教程 触发器:第一讲
  6. 计算机负数次幂科学表示,负数的科学计数法怎么表示
  7. linux开机脚本文件下载,linux 开机启动脚本
  8. python如何读取tfrecord_tensorflow将图片保存为tfrecord和tfrecord的读取方式
  9. java单链表存储结构_Java数据结构——单链表
  10. Python三种方法统计4位自然数变为黑洞数6174所需次数分布