Подтвердить что ты не робот

Чтение из CSV в Python неоднократно?

Я пытаюсь проверить значение извлеченных данных против csv, который у меня уже есть. Он будет циклически проходить через строки CSV один раз, я могу проверить только одно значение feed.items(). Есть ли значение, которое мне нужно для reset где-то? Есть ли лучший/более эффективный способ сделать это? Спасибо.

orig = csv.reader(open("googlel.csv", "rb"), delimiter = ';')
goodrows = []
for feed in gotfeeds:    
   for link,comments in feed.items():
       for row in orig:
           print link
           if link in row[1]:
               row.append(comments)
               goodrows.append(row)
4b9b3361

Ответ 1

Вы можете "reset" CSV-итератор, сбросив позицию чтения файлового объекта.

data = open("googlel.csv", "rb")
orig = csv.reader(data, delimiter = ';')
goodrows = []
for feed in gotfeeds:    
   for link,comments in feed.items():
       data.seek(0)
       for row in orig:
           print link
           if link in row[1]:
               row.append(comments)
               goodrows.append(row)

Ответ 2

Создание orig списка позволяет избежать необходимости reset/переупаковать csv:

orig = list(csv.reader(open("googlel.csv", "rb"), delimiter = ';'))