Re: [Python] chiudere un file CSV
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
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/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/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
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
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
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