Re: [Python] chiudere un file CSV

2010-06-10 Per discussione Daniele.zambelli
In data venerdì 04 giugno 2010 10:31:33, Vittorio Zuccala' ha scritto:
 Buongiorno a tutti,
 in un programma che sto creando, vengono generati una quindicina di files
 CSV.
 Questi vengono aperti uno per uno, elaborati e quindi zippati all'interno
 di un archivio di backup e infine cancellati.
 Il problema avviene quando provo a cancellare l'ultimo file creato ( con il
 comando *os.remove(info.filename)*).
 L'errore che ottengo è:
 
 OSError: [Errno 13] Permission denied: 'nomefile.csv'
 
 Come posso chiudere l'accesso al file CSV senza aprire una nuova istanza?

Probabilmente non ho capito bene... ma non è ce devi semplicemente chiudere il 
file prima di cancellarlo?

-- 

Danielewww.fugamatematica.blogspot.com

  giusto!
  _o)  (o_   (o_ _o)  nel verso
-./\\  //\.- //\ /\\  forse è perché non guardiamo le cose
 _\_V  V_/_  V_/ \_V  Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] chiudere un file CSV

2010-06-10 Per discussione Vittorio Zuccala'
Buongiorno,
si utilizzo windows.
Per quanto riguarda i permessi ne ho a sufficienza.
Lo script infatti crea circa 52 CSV e soltanto 3 non riesce a cancellarne
alla fine.
Ho anche modificato, su suggerimento di alcuni, lo script chiudendo il
file in questo modo:

*self.csvfile = open(dati['file'],'r')*
*self.__reader = csv.reader(self.csvfile, ;)
.  # VARIE AZIONI.
self.csvfile.close()*

A quel punto, andando avanti con lo script:

*#CREO UN FILE ZIP e faccio il backup dei CSV
str = backup/backup.zip
file = zipfile.ZipFile(str, w)
for name in glob.glob(*.csv):
file.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
file.close()

#CANCELLO I CSV APPENA COMPATTATI
file = zipfile.ZipFile(str, r)
for info in file.infolist():
os.remove(info.filename)
**file.close()*
*
*

Tuttavia l'errore permane.

*os.remove(info.filename)
Error: [Errno 13] Permission denied: 'nome file.csv*'

Mi sa che l'unica è come ha detto Fabrizio di lanciare un altro script
completamente differente di modo che terminando il primo script, l'handler
perda visibilità.
Devo ancora tentare questa strada perchè mi infastidisce molto non riuscire
a fare tutto con un unico script...



Il giorno 10 giugno 2010 00.17, andreatagliol...@gmail.com 
andreatagliol...@gmail.com ha scritto:

 Ciao, scusa la stupida domanda, ma sei sicuro di avere i permessi
 sufficienti per eliminare il file csv?
 Non è che lanci lo script con sudo o da root, oppure crei i .csv da root e
 poi li elimini da utente normale?
 Perchè l'errore dice proprio questo.
 Credo che tu usi Windows ( l'ho intuito dal fatto che hai usato os.remove()
 invece che os.sytem(rm file.csv).
 Io proverei con un try Execept e vedi se ti funziona.
 Ciao
 --
 Andrea Tagliolini

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


Re: [Python] chiudere un file CSV

2010-06-10 Per discussione Fabrizio Mancini
2010/6/10 Vittorio Zuccala' vittorio.zucc...@gmail.com:
 Mi sa che l'unica è come ha detto Fabrizio di lanciare un altro script
 completamente differente di modo che terminando il primo script, l'handler
 perda visibilità.
 Devo ancora tentare questa strada perchè mi infastidisce molto non riuscire
 a fare tutto con un unico script...
Ciao,
puoi anche provare a cancellare la variabile, con un semplice
del self.csvfile
in modo da far perdere visibilità alla variabile, non è molto
ortodosso, ma prova.
ciao Fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] chiudere un file CSV

2010-06-10 Per discussione Vittorio Zuccala'
Eureka.
Alla fine ci sono riuscito grazie ai vostri consigli.
Per chi servisse, se si apre un CSV, come ha detto Fabrizio, prima cosa
aprire un handler, manipolarlo e infine chiuderlo.
All'occorrenza cancellare l'handler una volta chiuso.
Grazie,
Vittorio

Il giorno 10 giugno 2010 11.49, Fabrizio Mancini mr.f...@gmail.com ha
scritto:

 2010/6/10 Vittorio Zuccala' vittorio.zucc...@gmail.com:
  Mi sa che l'unica è come ha detto Fabrizio di lanciare un altro script
  completamente differente di modo che terminando il primo script,
 l'handler
  perda visibilità.
  Devo ancora tentare questa strada perchè mi infastidisce molto non
 riuscire
  a fare tutto con un unico script...
 Ciao,
 puoi anche provare a cancellare la variabile, con un semplice
 del self.csvfile
 in modo da far perdere visibilità alla variabile, non è molto
 ortodosso, ma prova.
 ciao Fabrizio
 ___
 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] chiudere un file CSV

2010-06-09 Per discussione andreatagliol...@gmail.com
Ciao, scusa la stupida domanda, ma sei sicuro di avere i permessi
sufficienti per eliminare il file csv?
Non è che lanci lo script con sudo o da root, oppure crei i .csv da root e
poi li elimini da utente normale?
Perchè l'errore dice proprio questo.
Credo che tu usi Windows ( l'ho intuito dal fatto che hai usato os.remove()
invece che os.sytem(rm file.csv).
Io proverei con un try Execept e vedi se ti funziona.
Ciao

Il giorno 04 giugno 2010 10.48, Vittorio Zuccala' 
vittorio.zucc...@gmail.com ha scritto:

 Esattamente: in un unico file python.
 La creazione avviene con il lancio di un applicativo esterno:

 *stringa='clemb -stream AnalisiPortafoglioAgente.str -Pagente=%s  -execute
 -log agente.log' % agente['codiceAgente']
 os.system(stringa)
 *

 mentre la compattazione:
 *str = backup/backup %s.zip % config['englishtoday']
 file = zipfile.ZipFile(str, w)

 for name in glob.glob(*.csv):
 file.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
 *

 Se, prevedendo la tua risposta, pensi che sia meglio fare le due operazioni
 con due script separati... posso lanciare il secondo script (della
 compressione) dal primo con os.system(secondoscript) o c'è altro modo?


 Il giorno 04 giugno 2010 10.44, Paolo Bernardi villa.lo...@tiscali.it ha
 scritto:

 Come crei questi file? E le operazioni di compressione? Tutto mediante
 un unico script Python?

 Paolo

 On Fri, 2010-06-04 at 10:31 +0200, Vittorio Zuccala' wrote:
  in un programma che sto creando, vengono generati una quindicina di
  files CSV.
  Questi vengono aperti uno per uno, elaborati e quindi zippati
  all'interno di un archivio di backup e infine cancellati.
  Il problema avviene quando provo a cancellare l'ultimo file creato
  ( con il comando os.remove(info.filename)).
  L'errore che ottengo è:
 
  OSError: [Errno 13] Permission denied: 'nomefile.csv'
 
 
  Come posso chiudere l'accesso al file CSV senza aprire una nuova
  istanza?



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




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


[Python] chiudere un file CSV

2010-06-04 Per discussione Vittorio Zuccala'
Buongiorno a tutti,
in un programma che sto creando, vengono generati una quindicina di files
CSV.
Questi vengono aperti uno per uno, elaborati e quindi zippati all'interno di
un archivio di backup e infine cancellati.
Il problema avviene quando provo a cancellare l'ultimo file creato ( con il
comando *os.remove(info.filename)*).
L'errore che ottengo è:

OSError: [Errno 13] Permission denied: 'nomefile.csv'

Come posso chiudere l'accesso al file CSV senza aprire una nuova istanza?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] chiudere un file CSV

2010-06-04 Per discussione Paolo Bernardi
Come crei questi file? E le operazioni di compressione? Tutto mediante
un unico script Python?

Paolo

On Fri, 2010-06-04 at 10:31 +0200, Vittorio Zuccala' wrote:
 in un programma che sto creando, vengono generati una quindicina di
 files CSV.
 Questi vengono aperti uno per uno, elaborati e quindi zippati
 all'interno di un archivio di backup e infine cancellati.
 Il problema avviene quando provo a cancellare l'ultimo file creato
 ( con il comando os.remove(info.filename)).
 L'errore che ottengo è:
 
 OSError: [Errno 13] Permission denied: 'nomefile.csv'
 
 
 Come posso chiudere l'accesso al file CSV senza aprire una nuova
 istanza?


signature.asc
Description: This is a digitally signed message part
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] chiudere un file CSV

2010-06-04 Per discussione Fabrizio Mancini
2010/6/4 Vittorio Zuccala' vittorio.zucc...@gmail.com:
 Buongiorno a tutti,
 in un programma che sto creando, vengono generati una quindicina di files
 CSV.
 Questi vengono aperti uno per uno, elaborati e quindi zippati all'interno di
 un archivio di backup e infine cancellati.
 Il problema avviene quando provo a cancellare l'ultimo file creato ( con il
 comando os.remove(info.filename)).
 L'errore che ottengo è:

 OSError: [Errno 13] Permission denied: 'nomefile.csv'

 Come posso chiudere l'accesso al file CSV senza aprire una nuova istanza?

Ciao,
il modulo csv prende in ingresso un file handler che tu apri, oppure
se ne crea uno in automatico.
Per avere il maggiore controllo ti conviene creare un riferimento ad
un oggetto file, passarlo al modulo csv e quando hai finito chiudere
il file handler.
Altrimenti il modulo csv se se lo crea in automatico dovrebbe
chiuderlo quando la variabile che referenzia l'handler csv esce dallo
scopo e perde di visibilità.
ciao fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python