Я использую модуль 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 невозможен, так как после того, как StopItered выбрасывается, он будет бросать StopIteration при каждом последующем вызове next (). Кто-нибудь есть какие-либо предложения о том, как реализовать это таким образом, что мне не нужно делать это глупо рассказывать и искать? Или используйте другой модуль Python, который может легко поддерживать эту функцию.