我在Python中传递类似于tgz文件的对象的文件时遇到了问题。下面是我的代码的样子:
backup = tarfile.open(backup_file, mode='r:gz')
for f in backup.getmembers():
if f.name.endswith('.xml'):
ff = f.name
backupff = backup.extractfile(ff)
if backupff:
backupobj = backupff.read()
backup.close()
问题源于
backupobj = backupff.read()
它给出了这个错误:
AttributeError: 'bytes' object has no attribute 'read'
我在处理zip文件时没有这样的问题
@AKX,你说得对,这不是我正在运行的代码。真正的代码非常大,我不确定是否有人有时间研究它
无论如何,当我运行main函数时,我收到以下错误:
file_read = file.read
AttributeError: 'bytes' object has no attribute 'read'
以下是file.read部分:
def sendfile(self, file, offset=0, count=None):
"""Borrowed from https://github.com/python/cpython/blob/3.6/Lib/socket.py
and adapted to our needs
"""
self._check_sendfile_params(file, offset, count)
if self.request.gettimeout() == 0:
raise ValueError("non-blocking sockets are not supported")
if offset:
file.seek(offset)
blocksize = min(count, 8192) if count else 8192
total_sent = 0
# localize variable access to minimize overhead
file_read = file.read
sock_send = self.request.send
我很肯定这不是你正在运行的代码,也不是你正在运行的环境。我无法用Python 3.8重现这一点:
我找到了解决办法:
无需使用以下命令:
此行足以将文件分配给外部用户
相关问题 更多 >
编程相关推荐