【发布时间】:2010-01-04 18:19:42
【问题描述】:
我正在使用 python 的 csv 模块从外部工具不断更新的 csv 中提取数据。我遇到了一个问题,当我到达文件末尾时出现 StopIteration 错误,但是,我希望脚本继续循环等待外部工具添加更多行。
到目前为止,我想出的是:
f = open('file.csv')
csvReader = csv.reader(f, delimiter=',')
while 1:
try:
doStuff(csvReader.next())
except StopIteration:
depth = f.tell()
f.close()
f = open('file.csv')
f.seek(depth)
csvReader = csv.reader(f, delimiter=',')
这具有预期的功能,但看起来也很糟糕。在捕获 StopIteration 之后循环是不可能的,因为一旦抛出 StopIteration,它将在每次后续调用 next() 时抛出一个 StopIteration。任何人对如何实现这一点有任何建议,这样我就不必做这种愚蠢的告诉和寻求?或者有一个不同的 python 模块可以轻松支持此功能。
【问题讨论】: