这个
csv
模块本身没有这样的约束。当代码到达变量时,它停止写入
rowLimit
(这在你的问题中没有定义),所以显而易见的简单解决方案是把它拿出来。
这里有一个重构的尝试,它还可以重命名你的变量以符合Python的约定。
with open('Desktop/output.csv', 'w') as csvfile:
csv_writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_NONNUMERIC)
csv_writer.writerow(['Tooltip', 'Lat','Lon', 'Distance'])
for counter, feature in enumerate(features):
# if counter == row_limit:
# raise StopIteration('row_limit reached')
csv_writer.writerow([feature['TOOLTIP'], feature.geometry().centroid().asPoint().y(),feature.geometry().centroid().asPoint().x(), Ranker.calculateDistance(feature, layerEntrances)])
if counter % 100 == 0:
csvfile.flush()
当然,您可以使用程序读取生成的CSV文件,但该文件无法处理任意大的文件;至少Excel似乎对大于65535行的工作表有问题(但朋友不允许朋友使用Excel)。