类似这样的方法会起作用:import pandas
chunksize = 5
csv = pandas.read_csv('sample.csv', chunksize=chunksize)
class NextIterator:
def __init__(self, iterator):
self._iterator = iterator
self._buffer = []
def __iter__(self):
return self
@property
def has_next(self):
try:
self._buffer = [next(self._iterator)]
return True
except StopIteration:
return False
def __next__(self):
if self._buffer:
return self._buffer.pop()
else:
return [next(self._iterator)]
has_next = True
b = NextIterator(csv)
while has_next:
a = next(b)
if b.has_next:
print(a)
else:
print(a[:-1])
has_next = False
你不需要创建一个类,但我发现它很有用。在
使用next并捕获StopIteration,您可以检查迭代器中是否还有更多。如果没有的话,你可以把你的块切掉,排除最后一个元素。在