[Python] Leggere file in directory diversa

2010-10-01 Per discussione franco93it
Se io metto uno script in /home/io/Desktop come faccio a leggere un file
nella stessa cartella?

Se avvio lo script senza essermi prima posizionato nella cartella dello
script non riesce ad aprire file:
~$ python Desktop/script.py

Traceback (most recent call last):
  File /home/io/Desktop/script.py, line 8, in script
file = open(file,r)
IOError: [Errno 2] No such file or directory: 'file'


Se invece mi posiziono prima, legge il file correttamente:
~/Desktop$ python script.py

Il file è nella stessa cartella di script.py
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file in directory diversa

2010-10-01 Per discussione Vittorio Zuccala'
Domande sciocca:

   - il file si chiama file senza estensione?

Puoi cambiare directory con il modulo os:


*dir_originaria=os.getcwd()
os.chdir(nome_directory_dove_sta_il_file)*
leggi il file
*os.chdir(dir_originaria)*



Il giorno 01 ottobre 2010 14:38, franco93it franco9...@gmail.com ha
scritto:

 Se io metto uno script in /home/io/Desktop come faccio a leggere un file
 nella stessa cartella?

 Se avvio lo script senza essermi prima posizionato nella cartella dello
 script non riesce ad aprire file:
 ~$ python Desktop/script.py

 Traceback (most recent call last):
   File /home/io/Desktop/script.py, line 8, in script
 file = open(file,r)
 IOError: [Errno 2] No such file or directory: 'file'


 Se invece mi posiziono prima, legge il file correttamente:
 ~/Desktop$ python script.py

 Il file è nella stessa cartella di script.py

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file in directory diversa

2010-10-01 Per discussione Daniele Varrazzo
 Il giorno 01 ottobre 2010 14:38, franco93it franco9...@gmail.com ha
 scritto:
 
 Se io metto uno script in /home/io/Desktop come faccio a leggere un
file
 nella stessa cartella?

On Fri, 1 Oct 2010 14:42:44 +0200, Vittorio Zuccala'
vittorio.zucc...@gmail.com wrote:

 Puoi cambiare directory con il modulo os:

No, questo non si fa. Un programma deve avere un motivo serio per cambiare
directory corrente, che non è altro che una variabile globale, usata da
librerie che non si conoscono per cui cambiarla può avere effetti
collaterali.

Va specificato il percorso completo: open(/home/io/Desktop/file). Se la
dir e il file sono in posti diversi possono essere cucite insieme con
funzioni tipo os.path.join().

Se il file è nella stessa cartella dello script puoi usare la variabile
__file__ per sapere il suo nome ed estrarre il percorso, per esempio
os.path.join(os.path.dirname(__file__), file). Questa è una delle cose
che smette di funzionare se si cambia il percorso corrente con os.chdir().

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file in directory diversa

2010-10-01 Per discussione franco93it
Il giorno 01 ottobre 2010 15:10, Daniele Varrazzo p...@develer.com ha
scritto:


 Se il file è nella stessa cartella dello script puoi usare la variabile
 __file__ per sapere il suo nome ed estrarre il percorso, per esempio
 os.path.join(os.path.dirname(__file__), file). Questa è una delle cose
 che smette di funzionare se si cambia il percorso corrente con os.chdir().


 Grazie mille Daniele, se al posto del nome metto il risultato di questa
stringa funziona
Ciao
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python