首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中读取混合二进制/ ascii文件的简单方法?

在python中读取混合二进制/ ascii文件的简单方法?
EN

Stack Overflow用户
提问于 2022-11-08 21:52:50
回答 1查看 25关注 0票数 0

我试图在python中手动打开和解释一个P6 ppm图像文件。一个ppm的p6文件在开始时有几行普通的ascii,然后是二进制的实际图像数据(这与ppm p3文件相反,后者都是纯文本)。

我已经找到了一些可以读取ppm文件的模块(opencv,numpy),但我真的很想手动读取它(特别是因为ppm应该是一种相当简单的图像格式)。

当我试图打开和读取文件时,无论我使用open("image.ppm", "rb")还是open("image.ppm", "r"),都会遇到错误,因为这两种方法都需要一个文件,要么是二进制文件,要么是纯文本文件。

因此,更广泛地说:在python中是否有一种容易打开混合二进制/文本文件的方法?

EN

回答 1

Stack Overflow用户

发布于 2022-11-08 22:10:06

您可以这样做,在rb模式下对文件进行rb,并检查当前的byte是否为printable,如果不是printhex value,则为print作为character

代码语言:javascript
运行
复制
import string


with open("file name", "rb") as file:
    data = file.read()
# to print, go through the file data
for byte in data:
    # check if the byte is printable
    if chr(byte) in string.printable:
        # if it is print as character
        print(chr(byte), end="")
    else:
        # if it isn't print the hex value
        print(hex(byte), end="")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74367573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档