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] Copiare una cartella nell'ambito di una LAN

2010-06-10 Per discussione Fabrizio Mancini
2010/6/10 Antonio Fittipaldi moaiamo...@python-it.org:
 Buongiorno a tutti,
Ciao

 ho due macchine, A (Windows XP Home/Professionale) e B (Windows Server
 2003), appartenenti alla stessa LAN, e debbo copiare una cartella da B
 ad A.
 Ho visto che esiste il metodo copy di shutil che dovrebbe fare al caso mio.
 Domande:

 1. la cartella che copio deve essere necessariamente una cartella
 condivisa in B?
sarebbe cosa gradita, altrimenti non la raggiungi a meno che tu non
passi dalla condivisione amministrativa di windows (se presente)

 2. se sì, come posso, da codice, inserire le credenziali di accesso (o
 dell'utente di B o del profilo che ha pieno accesso alla cartella in
 oggetto), per evitare problemi di accesso negato et similia?
Prova a partire da questa tips.
http://code.activestate.com/recipes/442521-windows-network-file-transfers/
ciao fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Copiare una cartella nell'ambito di una LAN

2010-06-10 Per discussione Giorgio Zoppi
Il 10 giugno 2010 09.58, Antonio Fittipaldi moaiamo...@python-it.org
ha scritto:
 Buongiorno a tutti,

 ho due macchine, A (Windows XP Home/Professionale) e B (Windows Server
 2003), appartenenti alla stessa LAN, e debbo copiare una cartella da B
 ad A.
 Ho visto che esiste il metodo copy di shutil che dovrebbe fare al caso mio.
 Domande:

 1. la cartella che copio deve essere necessariamente una cartella
 condivisa in B?
 2. se sì, come posso, da codice, inserire le credenziali di accesso (o
 dell'utente di B o del profilo che ha pieno accesso alla cartella in
 oggetto), per evitare problemi di accesso negato et similia?

 Grazie!

uhm...ma usare ssh senza condividere cartelle ??
cygwin +ssh lato server.
http://freshmeat.net/projects/pysync/  lato client.
Almeno ai miei tempi quando ero sistemista evitavo di condividere il
mondo. Troppi problemi: security, traffico, ecc.
Ma era dieci anni fa, magari le cose sono migliorate.
Giorgio-

-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
Favola -Moda.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Copiare una cartella nell'ambito di una LAN

2010-06-10 Per discussione Antonio Fittipaldi
Grazie ragazzi, ma proseguendo (in locale) sono arrivato a questo punto:

import shutil
import os

cartella_sorgente = C:\\Antonio\\A
cartella_destinazione = C:\\Antonio\\B

for c in os.listdir(cartella_sorgente):
if c not in os.listdir(cartella_destinazione):
shutil.copytree(cartella_sorgente + os.sep + c,
cartella_destinazione, ignore=shutil.ignore_patterns('B*'))

Il problema è che ho un bel Impossibile creare un file, se il file
esiste già: 'C:\Antonio\B', sebbene stia usando ignore_patterns. Pare
che B gli dia fastidio, e ovviamente se la rimuovo ho problemi
sull'if.

Qualche suggerimento?

Grazie.

-- 
Antonio Fittipaldi
http://www.python-it.org # il punto di riferimento italiano per gli
appassionati di Python
___
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