Sono consapevole che posso aprire più file con qualcosa di simile,di apertura (un numero non specificato) dei file in una sola volta e assicurando che siano correttamente chiusi
with open('a', 'rb') as a, open('b', 'rb') as b:
Ma io ho una situazione in cui ho una lista di file da aprire e mi chiedo quale sia il metodo preferito per fare lo stesso quando il numero di file è sconosciuto in anticipo. Qualcosa di simile,
with [ open(f, 'rb') for f in files ] as fs:
(ma questo non riesce con un AttributeError
poiché elenco non implementa __exit__
)
Non mi dispiace usare qualcosa di simile,
try:
fs = [ open(f, 'rb') for f in files ]
....
finally:
for f in fs:
f.close()
ma non sono sicuro che cosa accadrà se alcuni file vengono lanciati quando si tenta di aprirli. fs
sarà definito correttamente, con i file che è riuscito ad aprire, nel blocco finally
?
si sarà accedere a questi file in parallelo o in sequenza? –
@EthanFurman In parallelo. – tjm