【发布时间】:2019-06-05 06:51:13
【问题描述】:
我有一个生成器,它为我提供了熊猫数据框的“块”。我将块保存到 csv 文件中。
对于第一个“块”,我想禁用“mode='a'”,因为如果文件已经存在,我想覆盖该文件,应将以下块添加到新创建的文件中。
现在我已经用循环外的一个变量解决了它:“first”。
first = True
for chunk in generator:
if first:
chunk.to_csv(filename, sep=';')
first = False
else:
chunk.to_csv(filename, sep=';', mode='a', header=False)
有没有更优雅的方式来处理生成器的第一个元素而不是其他元素?
我发现以下代码可以不同地处理列表中的第一个对象,但是它不适用于生成器对象。
seq= something.get()
foob( seq[0] )
for member in seq[1:]:
foo( member )
尝试为生成器实现列表的代码给了我一个 TypeError('generator' 对象不可下标):
generator[0].to_csv(filename, sep=';')
for chunk in generator[1:]:
chunk.to_csv(filename, sep=';', mode='a', header=False)
【问题讨论】: