我使用的是一个API,它要求我传入一个file对象进行读取,但是我只想传入一个现有文件的一部分,这样API只读取前n个字节。我想我可以在自己的类中包装“file”,类似于:
class FilePortion(file):
def __init__(self, name, mode, lastByteToRead):
self.LAST_BYTE = lastByteToRead
super(FilePortion, self).__init__(name, mode)
def read(self, size=None):
position = self.tell()
if position < self.LAST_BYTE:
readSize = self.LAST_BYTE - position
if size and size < readSize:
readSize = size
return super(FilePortion, self).read(readSize)
else:
return ''
…只是我不确定要重写哪些方法,以及具体重写方式。例如,如何重写next()?有更好的方法吗?在
您可以使用现有的tarfile.\u FileInFile包装类。不要做自行车:)
给它一个^{} 对象怎么样?您只需自己读取第一个
n
字节并将它们放入对象的缓冲区。在相关问题 更多 >
编程相关推荐