在Python中重复读取CSV文件?

28 投票
2 回答
28759 浏览
提问于 2025-04-15 22:54

我正在尝试将提取的数据值与我已有的一个csv文件进行比较。这个过程只会遍历csv文件中的每一行一次,我只能检查feed.items()中的一个值。请问我需要在某个地方重置一下值吗?有没有更好或更有效的方法来做到这一点?谢谢。

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)

2 个回答

15

orig 变成一个列表,这样就不用重新设置或重新解析csv文件了:

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

你可以通过重置文件对象的读取位置来“重置”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)

撰写回答