Contenuto cancellato Contenuto aggiunto
Qualc1 (discussione | contributi)
Riga 68:
 
:Nei prossimi giorni cerco di generarti la lista... ciao. --[[User:Qualc1|qualc1]] ([[User talk:Qualc1|disc.]]) 13:48, 21 dic 2008 (CET)
 
== Tre scriptini python ==
 
Caro Qualc1, ti propogo tre scriptini che ho scritto e che, nella loro semplicità, uso e riuso continuamente come strumento fai-da-te per parsare html e xml e mille altre cose. Non dubito che script molto più sofisticati siano incorporati in ogni modulo che si occupa di queste cose, e che analogo risultato si possa ottenere molto più elegantemente con le RE, ma come sai ogni scarafone ecc. e non si sa mai che tu li trovi utili. Con questi due scriptini ho scritto in un tempo veramente breve un programmino python che estrae dai file ...djvu.xml il testo pronto a essere post.elaborato e ficcato nelle pagine Pagina (v. [[Indice:Lettere autografe Colombo]]. da te vorrei sapere se sono totalmente inutili, e se sì, con quale funzione python, altrettanto facile da capire, posso rimpiazzarli.
 
<pre>
## General string management routines for RE ignorants :-(
 
# finds the first substring into a string beginning with idi and ending with idf; returns it
# with (dc=1) or without (default dc=0) idi and idf; used for xml managing too
def find_stringa(stringa,idi,idf,dc=0):
idip=stringa.find(idi)
idfp=stringa.find(idf,idip)+len(idf)
if idip>-1 and idfp>0:
if dc==0:
vvalore=stringa[idip+len(idi):idfp-len(idf)]
else:
vvalore=stringa[idip:idfp]
else:
vvalore=""
return vvalore
 
# returns a tuple of the first substring (beginning with idi and ending with idf)
# of a string and of original string with the substring erased (defalut) or replaced with a new string.
def el_st(stringa,idi,idf,new=""):
idip=stringa.find(idi)
idfp=stringa.find(idf,idip)+len(idf)
if idip>-1 and idfp>0:
vvalore=stringa[idip:idfp]
valore=stringa.replace(vvalore,new,1)
else:
vvalore=""
valore=stringa
return valore, vvalore
 
# returns a list of all substrings (beginning with idi and ending with idf)
# of a string; ; used for xml data managing too. The original string is unchanged.
 
def produci_lista(testo,idi,idf,dc=0):
t=testo[:]
lista=[]
while not find_stringa(t,idi,idf)=="":
el=find_stringa(t,idi,idf,1)
t=t.replace(el,"")
#print el
if dc==0:
el=find_stringa(el,idi,idf,0)
lista.append(el)
return lista
</pre>
--[[User:Alex brollo|Alex brollo]] ([[User talk:Alex brollo|disc.]]) 23:45, 12 gen 2009 (CET)