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''
假设我想将字节保存到一个列表中,然后再次将该列表保存为相同的图像。我该如何继续?
谢谢!
发布于 2013-06-10 03:05:03
如果你真的需要“摆脱b”,你可以使用bytes.decode函数:http://docs.python.org/3.3/library/stdtypes.html#bytes.decode
但从你的代码看,你并不真的需要这样做,你真的需要处理字节。
发布于 2013-06-10 03:04:41
b"...“只是字节字符串的python表示法,它并不是真正存在的,它只被打印出来。这会给你带来一些真正的问题吗?
发布于 2014-07-29 22:27:08
b''
只是在print
时写入的数据的字符串表示形式。
在这里使用decode
对您没有帮助,因为您只需要字节,而不需要它们所代表的字符。分割字符串表示的帮助更小,因为这样仍然会留下几个无用字符('\‘、'x’等等)的字符串,而不是原始字节。
不需要修改数据的字符串表示形式,因为数据仍然存在。只需使用它而不是字符串(即不要使用print
)。如果您想复制数据,您可以简单地执行以下操作:
data = file1.read(...)
...
file2.write(data)
如果要直接从程序输出二进制数据,请使用sys.stdout.buffer
import sys
sys.stdout.buffer.write(data)
https://stackoverflow.com/questions/17013089
复制相似问题