Non si chiudono direttamente i lettori CSV; dovresti invece chiudere qualunque oggetto simile a file venga usato. Ad esempio, nel tuo caso, si direbbe:
f = open('/home/rv/ncbi-blast-2.2.23+/db/output.blast')
z = csv.reader(f, delimiter='\t')
...
f.close()
Se si utilizza una versione recente di Python, è possibile utilizzare l'istruzione with, per esempio
with open('/home/rv/ncbi-blast-2.2.23+/db/output.blast') as f:
z = csv.reader(f, delimiter='\t')
...
Questo ha il vantaggio che f
sarà chiusa, anche se si lancia un'eccezione o altrimenti return all'interno del con-blocco, che tale caso porterebbe al file rimanendo aperti nell'esempio precedente. In altre parole, è fondamentalmente equivalente a un blocco try/finally, ad es.
f = open('/home/rv/ncbi-blast-2.2.23+/db/output.blast')
try:
z = csv.reader(f, delimiter='\t')
...
finally:
f.close()
fonte
2010-07-09 22:36:50