我正在嘗試在python中處理一個相對較大(大約10萬行)的csv文件。這是我的代碼的樣子:如何加速這個python腳本來讀取和處理csv文件?
#!/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import csv
import os
csvFileName = sys.argv[1]
with open(csvFileName, 'r') as inputFile:
parsedFile = csv.DictReader(inputFile, delimiter=',')
totalCount = 0
for row in parsedFile:
target = row['new']
source = row['old']
systemLine = "some_curl_command {source}, {target}".format(source = source, target = target)
os.system(systemLine)
totalCount += 1
print "\nProcessed number: " + str(totalCount)
我不知道如何優化此腳本。我應該使用除DictReader之外的東西嗎?
我有使用Python 2.7,如果你想避免多處理器有可能你長的CSV文件拆分成幾個較小的CSV並在同時運行它們不能升級到Python 3
問題並不在於你如何閱讀CSV文件,而是你要爲文件的每一行拋出'curl'。相反:1.使用本地Python代碼來檢索URL,2.使用多線程一次創建多個請求。 – kindall
還有什麼我可以做的嗎?我是python的新手,我不想開始搞亂多線程。 – alexgbelov
編號99%的腳本運行時間是Web請求上的腳本,因爲在開始下一個之前,您正在等待每個腳本完成。爲了避免這種情況,您必須一次運行多個程序。 – kindall