Portál AbcLinuxu, 1. května 2025 08:09
while ki!=-1: zi=string.find(data,z,prevz)+len(z) ki=string.find(data,k,prevz) prevz=ki+len(k) if not ki==-1: found.append(data[zi:ki])řešit reg. výrazy, ale nepodařilo se mi najít ten správný
<text:p>(cokoliv)</text:p>
. Za nakopnutí bych byl vděčen re.findall("<text:p>(.+)</text:p>", a)
... jestli plácám blbosti tak si toho nevšímejte re.findall("<text:p>(.+)</text:p>", data)
import re rp = re.compile("<text:p>([^<>]*)</text:p>") rp.findall(data)
rp = re.compile("<text:p>([^<>]*)</text:p>") rp.findall(data)je ekvivalentné
re.findall("<text:p>([^<>]*)</text:p>", data),ale ak potrebujete s tým regexom ešte pracovať, tak je výhodnejšie ho skompilovať len raz. K tým > a <: každý program, ktorý exportuje do XML ich samozrejme musí nahradzovať, ak má vytvoriť platný XML súbor. A ešte som predpokladal, že ten váš element text:p neobsahuje ďalšie elementy (ale nemusí to tak byť, netuším, aký formát má OO). Takže, aby som to zhrnul, neviem, prečo vám práve toto funguje a nie to predtým (re.findall…), lebo pre OO by mali byť tie programy ekvivaltné. Snáď len že máte nejakú staršiu verziu pythonu, ale to by musela byť veľmi stará, lebo AFAIK regexy sa naposledy poriadne menili niekedy v 1.5.2 a potom v 2.0 pridaním Unicode :-/
lebo AFAIK regexy sa naposledy poriadne menili niekedy v 1.5.2 a potom v 2.0 pridaním Unicode :-/Do 2.4 byly přidány nějaké konstrukce, ale ty je zde stejně nepoužíváš
buňeksi dokážu vysvětlit jen pokročilou hodinou
(defun save-db (filename) (with-open-file (out filename :direction :output :if-exists :supersede) ; sprav nieco so suborom out))Alebo inak povedané, poriadny jazyk, kde nič ako zatváranie súborov nemusíte robiť. Rovnaká vec má pribudúť aj v pythone 2.5. To, čo vy nazývate dobrým štýlom, sú idiómy nižších jazykov, ako je python a rozhodne ich netreba dogmaticky pchať všade.
Rovnaká vec má pribudúť aj v pythone 2.5.Huráá, Python bude mít makra!
with
, využívajúca nové vlastnosti generátorov a bude sa dať ľubovoľnému objektu povedať, že čo s ním má with
spraviť. Teda napríklad súbor bude vedieť, že po skončení bloku sa má zavrieť, thread bude vedieť, že na with
bloku je lock, apod. Pekné ale je, že kým v lispe napísanie vlastného with trvá 5 minút a dá sa to už 4O rokov, tak v pythone treba navrhnúť PEP, teba diskutovať, schváliť a po pár mesiacoch(až rokoch) je nová konštrukcia with
), takže sa ich oplatí pridať. A PEPy komentujú skúsení hackeri, takže nemám o budúcnosť pythonu obavy.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.