Di recente, ho posto la seguente domanda su SO :
Ho una cartella foocon migliaia di .htmlfile di circa 300 Kb ciascuno.
Ecco cosa faccio per aprirli:
import os
import time
folder_name = 'foo'
for file_name in os.listdir(folder_name):
t = time.time()
with open(os.path.join(folder_name, file_name)) as f:
print(time.time() - t, 'seconds to open', file_name)
Ed ecco l'output che ottengo:
1.6057319641113281 seconds to open 1.html
1.3181514739990234 seconds to open 2.html
1.1490132808685303 seconds to open 3.html
1.2970092296600342 seconds to open 4.html
1.0074846744537354 seconds to open 5.html
1.5122349262237549 seconds to open 6.html
1.1730327606201172 seconds to open 7.html
1.9992561340332031 seconds to open 8.html
etc.
Ho un SSD e sono abbastanza sorpreso che ci voglia un secondo per aprire un piccolo file.
È normale? In caso contrario, cosa si può fare per accelerarlo?
Ho erroneamente pensato che il mio problema fosse specifico di Python. Ora l'ho provato su un altro PC e ci vogliono millisecondi (come dovrebbe).
Inoltre, la compressione di molti file di piccole dimensioni richiede anche circa 1 secondo per file. Quindi il problema è che Windows 10 impiega più di 1 secondo per aprire un file.
C'è qualcosa che posso fare al riguardo? (tranne reinstallare l'intera cosa)
withesegue la chiusura quando l'esecuzione lascia il suo campo di applicazione.
fad ogni passaggio? Migliaia di handle di file aperti sarebbero destinati ad avere un impatto sulle prestazioni.