使用代码时出现以下错误: 代码:
with open(temp_file_path, 'wb') as output_file:
shutil.copyfileobj(raw, output_file)
注意:raw是<class 'bytes'>
类型的文本流
错误:
shutil.copyfileobj(raw, output_file)
File "/usr/lib/python3.6/shutil.py", line 79, in copyfileobj
buf = fsrc.read(length)
AttributeError: 'bytes' object has no attribute 'read'
如何在输出文件中写入raw
?
答案 0 :(得分:1)
bytes
对象不是任何类型的文本流。这是一个字节的块。
shutil.copyfileobj
用于将一个文件的 obj ect的内容复制到另一个类似文件的对象。因此,它被称为copyfileobj
。类文件对象是支持接口的对象,例如open
返回的对象,具有当前位置的概念,write
方法用于可写文件类对象,read
和行可读的类似文件的对象的基于迭代的迭代,通常还有许多其他方法。
bytes
对象不是类似于文件的对象。它没有任何东西。要将字节写入文件,只需调用文件的write
方法即可。
output_file.write(raw)