[英]the last output running on infinite loop - 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.