Python上运行的最后一个输出



我的python代码从第1行选择链接,从第2行选择日期,以便运行需要链接和日期的to_scrape函数,最后一个输出无限运行。读取链接+日期(行的两列(工作/获取数据的最佳方式是什么

start = 0 
end = 2
csvfile = open('file.csv', 'r')
csvFileArray = []
for row in csv.reader(csvfile):
csvFileArray.append(row[0])    
csvFileDate = []
for row in csv.reader(csvfile):
csvFileDate.append(row[1])    
csvfile.close()
alums = csvFileArray[start:end]
alumdate = csvFileDate[start:end]

for i in alums:
for j in alumdate:

start+=1
print(i)
print(start)
to_scrape(i,j)

而不是以下内容(您所做的(:

for i in alums:
for j in alumdate:

start+=1
print(i)
print(start)
to_scrape(i,j)

您应该使用zip函数,它可以并行迭代多个序列:

for i, j in zip(alums, alumdate):
start+=1
print(i)
print(start)
to_scrape(i,j)
for row in csv.reader(csvfile):
csvFileArray.append(row[0])    
for row in csv.reader(csvfile):
csvFileDate.append(row[1])  

这两个for循环并没有做你可能正在想的事情。它们一次又一次地连续地重新打开csvfile,导致无限循环。还要注意,您需要同时处理一行中的两个项目。否则,您将不得不重置该文件并重新开始从头开始读取该文件。

以下是包含错误修复的完整代码。

start = 0 
end = 2
csvFileArray = []
csvFileDate = []
#requires newline='' if you want to use it with csv.reader
with open('file.csv', newline='') as csvfile
csv_reader = csv.reader(csvfile):
for row in csv_reader:
csvFileArray.append(row[0])
csvFileDate.append(row[1])
alums = csvFileArray[start:end]
alumdate = csvFileDate[start:end]
for (i,j,start) in zip(alums, alumdate, range(1, len(alums)):
print(start, i, j)
to_scrape(i,j)

最新更新