Чтение из 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)
Ответы
Ответ 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 = ';'))