Python删除字节b''

2024-04-26 12:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

import save

string = ""

with open("image.jpg", "rb") as f:
    byte = f.read(1)
    while byte != b"":
        byte = f.read(1)
        print ((byte))

我得到的字节如下:

b'\x00'

我该如何摆脱这个b''

假设我想将字节保存到列表中,然后将此列表再次保存为同一图像。我该怎么做?

谢谢!


Tags: imageimport列表readstring字节saveas
3条回答

如果真的需要“去掉b”,可以使用bytes.decode函数:http://docs.python.org/3.3/library/stdtypes.html#bytes.decode

但是从你的代码来看,你不需要这么做,你真的需要使用字节。

b''只是在您print写入数据时所用的字符串表示。

使用decode在这里对您没有帮助,因为您只需要字节,而不需要它们表示的字符。对字符串表示进行切片将帮助甚微,因为这样仍然会留下一个由几个无用字符组成的字符串('\','x',等等),而不是原始字节。

不需要修改数据的字符串表示,因为数据仍然存在。只需使用它而不是字符串(即不要使用print)。如果要复制数据,只需执行以下操作:

data = file1.read(...)
...
file2.write(data)

如果要直接从程序输出二进制数据,请使用sys.stdout.buffer

import sys

sys.stdout.buffer.write(data)

b“…”只是一个字节字符串的python表示法,实际上并不存在,它只会被打印出来。这会给你带来真正的问题吗?

相关问题 更多 >