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


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

2010-06-10 Per discussione Antonio Fittipaldi
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!

Saluti.

-- 
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 Fabrizio Mancini
2010/6/10 Vittorio Zuccala' :
> 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 :
> 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 
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] Copiare una cartella nell'ambito di una LAN

2010-06-10 Per discussione Valerio Turturici
Il giorno 10 giugno 2010 12.02, Antonio Fittipaldi  ha scritto:

> 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?
>
>
Come destinazione a shutil.copytree devi dare la cartella da creare. Vedi se
va con:

 shutil.copytree(cartella_
>
> sorgente + os.sep + c,
> cartella_destinazione + os.sep + c, ignore=shutil.ignore_patterns('B*'))


Ciao.
-- 
Valerio Turturici
___
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  ha
scritto:

> 2010/6/10 Vittorio Zuccala' :
> > 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