2024-04-26 12:07:14 发布
网友
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''?
b''
假设我想将字节保存到列表中,然后将此列表再次保存为同一图像。我该怎么做?
谢谢!
如果真的需要“去掉b”,可以使用bytes.decode函数:http://docs.python.org/3.3/library/stdtypes.html#bytes.decode
但是从你的代码来看,你不需要这么做,你真的需要使用字节。
b''只是在您print写入数据时所用的字符串表示。
print
使用decode在这里对您没有帮助,因为您只需要字节,而不需要它们表示的字符。对字符串表示进行切片将帮助甚微,因为这样仍然会留下一个由几个无用字符组成的字符串('\','x',等等),而不是原始字节。
decode
不需要修改数据的字符串表示,因为数据仍然存在。只需使用它而不是字符串(即不要使用print)。如果要复制数据,只需执行以下操作:
data = file1.read(...) ... file2.write(data)
如果要直接从程序输出二进制数据,请使用sys.stdout.buffer:
sys.stdout.buffer
import sys sys.stdout.buffer.write(data)
b“…”只是一个字节字符串的python表示法,实际上并不存在,它只会被打印出来。这会给你带来真正的问题吗?
如果真的需要“去掉b”,可以使用bytes.decode函数:http://docs.python.org/3.3/library/stdtypes.html#bytes.decode
但是从你的代码来看,你不需要这么做,你真的需要使用字节。
b''
只是在您print
写入数据时所用的字符串表示。使用
decode
在这里对您没有帮助,因为您只需要字节,而不需要它们表示的字符。对字符串表示进行切片将帮助甚微,因为这样仍然会留下一个由几个无用字符组成的字符串('\','x',等等),而不是原始字节。不需要修改数据的字符串表示,因为数据仍然存在。只需使用它而不是字符串(即不要使用
print
)。如果要复制数据,只需执行以下操作:如果要直接从程序输出二进制数据,请使用
sys.stdout.buffer
:b“…”只是一个字节字符串的python表示法,实际上并不存在,它只会被打印出来。这会给你带来真正的问题吗?
相关问题 更多 >
编程相关推荐