Ich habe einige riesige Excel-Dateien, aber ich bin sogar mit einem "bescheidenen" (50 MB) behaftet. Ich muss die ersten beiden Zeilen überspringen, aber ich denke nicht, dass das die Verlangsamung ist. Kannst du an etwas anderes denken?openpyxl readonly use_iterators
wb = load_workbook(MyFile,read_only=True)
ws = wb.active
NDepth = ws.max_row-2
NTime = ws.max_column -1
Local_Depth = np.zeros((NDepth,))
Local_Temp = np.zeros((NDepth,NTime))
iterlist = islice(ws.iter_rows(),2,None)
start = time.time()
i=0
for row in iterlist:
Local_Depth[i] = row[0].value
j=0
for col in row[1:]:
Local_Temp[i,j] = col.value
j += 1
i += 1
print "Done", time.time()-start
Es dauert länger als 7 Minuten, um die Datei auf einem M4700 Dell Precision zu laden. Etwa 8000 Zeilen und 800 Spalten. Sicherlich muss etwas falsch sein? Könnte es irgendwo andere Verbesserungen geben, die ich in meinem Python 2.7-Setup machen sollte?
Danke, John
Es hängt davon ab, was werden Sie mit den Daten zu tun, die Sie von dieser Excel-Datei lesen ... Ich persönlich würde dafür verwenden Pandas Modul - es ist sehr einfach und verwendet innen sehr schöne und schnelle Algorithmen – MaxU
7 * 60/(8000 * 800) ~ = 0,066 Millisekunden/Zelle, die nicht zu schlecht scheint. –
Haben Sie versucht, den Code ohne Iteratoren auszuführen, d. H. 'Use_iterators = False'? –