使用shutil.copyfileobj时发生AttributeError

时间:2019-05-08 06:57:14

标签: python python-3.x shutil

使用代码时出现以下错误: 代码:

    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

1 个答案:

答案 0 :(得分:1)

bytes对象不是任何类型的文本流。这是一个字节的块。

shutil.copyfileobj用于将一个文件 obj ect的内容复制到另一个类似文件的对象。因此,它被称为copyfileobj。类文件对象是支持接口的对象,例如open返回的对象,具有当前位置的概念,write方法用于可写文件类对象,read和行可读的类似文件的对象的基于迭代的迭代,通常还有许多其他方法。

bytes对象不是类似于文件的对象。它没有任何东西。要将字节写入文件,只需调用文件的write方法即可。

output_file.write(raw)