Newsgroup: it.comp.programmare
Titolo: aiuto per uno script

Salve,
dovrei creare uno script (da far girare su una macchina win), questo
script deve analizzare un file che ha un nome che cambia ogni giorno
ed e' formato da una parola con la data di oggi es:  esempio2272010
poi all'interno di questo file devo cercare tutte le righe che
contengono dei dati ed estrapolarli, mentre su questa parte ho una
vaga idea di come fare, la prima invece non so proprio
grazie
ciao
rent



import datetime
with open(datetime.date.today().strftime('esempio%d%m%Y') as fin:
   for line in fin:
       ...
questo se il mese contiene lo 0... ma nell'esempio che fai e' 2272010
anziche' 22072010
il che mi da' da pensare... se anche nel giorno manca lo zero, avrai
2112010, e' il 2 novembre o il 21 gennaio?
in ogni caso, e' una variazione sul tema:
t = datetime.date.today()
with open('esempio%s%s%s' % (t.day, t.month, t.year)) as fin:
    ...

 dovrei creare uno script (da far girare su una macchina win),
pardon, non l'hai detto ma credevo lavorassi in python
d'altra parte nel 2010 python e' il linguaggio di default quando non
specificato altrimenti :)

 anziche' 22072010
si, ho scritto male io, sia il giorno sia il mese contengono lo 0


essendo a digiuno di programmazione mi va bene qualunque cosa... ho
capito cmq che era python e installando l'interprete python.
per trovare i dati da estrapolare mi sarei affidato ad un po' di
comandi unix di cui ho installato gli eseguibli su win, ma presumo che
potrei continuare sempre con python

 potrei continuare sempre con python
si', non credo tu abbia bisogno di altri strumenti.
per ogni dubbio, chiedi pure.

    for line in fin:
ho installato la 2.6 e se lancio il .py creato mi da un sytanx error
evidenziando as
 
^

 evidenziando as
Manca una parentesi chiusa... ma ti conviene dare un'occhiata a un
tutorial del linguaggio

 mi da un sytanx error
Quale sottile ironia.


Io suggerisco di installare cygwin e poi usare la bash per
interpretare lo script.
In tal caso il nome di file lo si ricava con
dt=`date "+%d%m%Y"`
fname=esempio${dt}
echo $fname
Tuttavia questo procedimento permette allo script di operare solo ed
esclusivamente col file del giorno in cui viene lanciato.
Se per una qualunque esigenza di recovery si volesse rielaborare un
file precedente?
Io suggerisco di prevedere un parametro opzionale in formato DDMMYYYY.
Se esiste, la procedura tiene conto del parametro per aprire quel
file; se invece non esiste, allora la procedura lavora sul file del
giorno.

 echo $fname
io ho provato a fare cosi', il nome del file e' volumi_toscan270710:
cat volumi_toscan`date +%d``date +%m``date +%Y` | grep serchio >
serchio.txt
serchio e' la parola che devo trovare nel file chiaramente...
pero' non funziona....
l'output e' questo:
cat: volumi_TOSCAN`date: No such file or directory
cat: +%d``date: No such file or directory
cat: +%m``date: No such file or directory
cat: +%Y`: No such file or directory

 cat: volumi_TOSCAN`date: No such file or directory
E' chiaro che il comando lo hai digitato male: manca un apice chiuso e
qualche doppio apice.
Perche' non usi le variabili di shell?
Comunque prova prima a scrivere
date "+%d%m%y"
e guarda se esce la data nel formato 280710
Poi ci aggiungi il resto.

 pero' non funziona....
%Y è a quattro cifre, date accetta un output_fmt anche più complesso di 
un solo parametro, `` è un costrutto di bash accertati di stare usando 
bash e controlla le differenze con $(), non c'è bisogno della pipe 
perché grep accetta un file come parametro.

 perché grep accetta un file come parametro.
grazie a tutti... risolto.
rent