[Python] Gestione file
Daniele Varrazzo
piro a develer.com
Lun 19 Mar 2007 16:27:06 CET
>> In questo secondo caso come faccio a
>> sapere da che posizione viene avviato uno script ?
>
> os.getcwd().
>
>> Ah Dimenticavo, lo script é compilato con Py2exe
>
> Non credo sia un problema par os.getcwd(): il concetto di posizione corrente
> esiste sempre.
mmm... dietrofront. Tu vuoi sapere dove lo script è salvato, non da dove
viene lanciato...
Allora sì, mi pare che con py2exe c'è una rognetta. Nei normali moduli
Python c'è la variabile __file__ che ti dice il nome del file, ma sotto
py2exe questa variabile non è disponibile.
Forse quando hai lo script sotto py2exe puoi leggere il nome dello script
con sys.argv[0].
Di sicuro nel primo caso, ma forse anche nel secondo, la directory che leggi
è relativa alla directory di esecuzione. Questo dovrebbe essere sufficiente,
ma se vuoi il percorso assoluto dovrai fare una cosa tipo:
os.path.abspath(os.path.join(os.path.getcwd(), percorso_relativo))
Per distinguere tra un caso e l'altro mi sembra si guardi sys.frozen, che
dovrebbe essere presente solo quando sei sotto py2exe, quindi controlla:
if getattr(sys, 'frozen', None) is None:
# sei frozen: guarda sys.argv[0]
else:
# non sei frozen: guarda __file__
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python