无限循环的最后一个输出 运行 - Python

the last output running on infinite loop - Python

我的 python 代码从第 1 行选择 links 并从第 2 行选择日期,以便 运行 to_scrape 函数需要 link和日期,最后输出 运行ning 无限。读取和获取 links+date(行的两列)work/get 数据而不会卡住循环的最佳方法是什么

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)