Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.
V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."
Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.
Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.
Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.
… více »Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+<\/NewsItem>)/g) {
$counter++;
$pole[$counter] = $1;
};
<NewsItem>....</NewsItem><NewsItem>+++++</NewsItem>
</NewsItem> nechat probehnout cyklus a pak pokracovat, kde skoncil - tj za prvnim vyskytem </NewsItem> a to opakovat az do konce souboru...
Predem diky za jakkoukoliv reakci, je mi jasny ze zrejme nechapu jak to funguje :-/
soubor.xml třeba tento obsah
<xml>
<NewsItem>prvni</NewsItem>
<NewsItem>druhy</NewsItem>
<NewsItem>treti</NewsItem>
</xml>
pak by se dal parsovat třeba tímto
#!/usr/bin/env python
from elementtree.ElementTree import *
root = ElementTree(file='soubor.xml')
for news in root.getroot():
print news.text
a výsledek by byl
prvni druhy tretiKdybys podrobněji popsal strukturu tvého xml souboru, dalo by se to napsat přímo na míru.
while($xmlretezec =~ s#(<NewsItem>[\s\S]+</NewsItem>)##)
{
$counter++;
$pole[$counter] = $1;
}
nebo pokud se zbavím citové vazby na cyklus while
takhle:
for($counter=0;$xmlretezec =~ s#<NewsItem>[\s\S]+</NewsItem>##;$counter++)
{
$pole[$counter] = $1;
}
což je mnohem lepší řešení, protože má o jeden řádek méně :))) (vtip)
Musim vas zklamat, ale nemate pravdu. Problem je v defaultni zravosti regexpu. Pokud tuto neomezite, coz jste neudelal, tak kod fungovat nebude. Navic jste v prikladu s cyklem for opomenul rici PERLu aby si nalezenou shodu zapamatoval. Nasledujici kod by uz mel fungovat, ma vsak jednu vlastnost ktera vy se nemusela byt zcela zadouci a to, ze modifikuje puvodni text v promenne $xmlretezec - vsechny nalezene shody proste z puvodniho textu vyrizne...
for($counter=0;$xmlretezec =~ s#(<NewsItem>[\s\S]+?</NewsItem>)##;$counter++) {
$pole[$counter] = $1;
}
Problem tkvi v tom, ze regularni vyrazy v PERL jsou zrave a snazi se najit co nejdelsi shodu, takze pro takto zadany regexp vezmou prvni znacku <NewsItem> a pak vsechno az po posledni znacku </NewsItem> kterou v promenne $xmlretezec najde. Staci omezit tuto defaultni zravost perlu pridanim '?' za '+' a kod se bude chovat tak jak ocekavate.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g) {
$counter++;
$pole[$counter] = $1;
}
A pokud to ma jen prijit na konec nejakeho pole, tak to jde i takto
push @pole, $xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g;
modifikátor:
s
Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match.
výsledok:
while ($xmlretezec =~ /\G.*?(<NewsItem>.+?<\/NewsItem>)/gs) {
push @pole, $1;
};
while ($xmlretezec =~ /(<NewsItem>.+?<\/NewsItem>)/gs) {
push @pole, $1;
};Viz: $ perl -le '$/=undef;$a=<>;while($a=~/(<NewsItem>.+?<\/NewsItem>)/gs){print $1}' <<EOF
<xml>
<NewsItem>pr
vni</NewsItem>
<NewsItem>druhy</NewsItem>
<NewsItem>tr
et
i</NewsItem>
</xml>
EOF
while ($xmlretezec =~ /(<NewsItem>(.+?)<\/NewsItem>)/gs) {
push @pole, $1 if $2;
};

.*?, keď element obsahuje text s dĺžkou 0.
python << EOF
from elementtree.ElementTree import *
xml = '''
<xml>
<NewsItem attr='bleble'>prvni</NewsItem>
<NewsItem >dr
uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem>
<NewsItem>treti</NewsItem>
</xml>
'''
elem = fromstring(xml)
pole = [news.text for news in elem.getiterator('NewsItem')]
print pole
EOF
Uvádím výsledek pro ty, kterým je proti srsti vzít do myši úplně cizí kód a strčit si ho do terminálu
['prvni', 'dr\n uhy', 'treti']
['prvni', 'dr\n <tento_tag_nechci>ignoruj</tento_tag_nechci>uhy', 'treti']keď už

python << EOF
from elementtree.ElementTree import *
import re
xml = '''
<xml>
<NewsItem attr='bleble'>prvni</NewsItem>
<NewsItem >dr
uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem>
<NewsItem>treti</NewsItem>
</xml>
'''
elem = fromstring(xml)
for e in elem.getiterator():
print (e.tag, e.text)
EOF
Výsledek:
('xml', '\n ')
('NewsItem', 'prvni')
('NewsItem', 'dr\n uhy')
('tento_tag_nechci', 'ignoruj')
('NewsItem', 'treti')
že se ptal na implementaci v perlu což výslovně uvedl v přímo v titulku dotazu.To že J.M. neustále u všech hledaných řešení doplňuje i o svoje řešení v Pythonu, to vidím jako plus a vůbec bych ho od toho neodrazoval. Jestli dotazující řešení v Pythonu nepoužije, nevadí (může to mlčky přehlédnout). Ale pro ostatní "přihlížející" návštěvníky to může být zajímavá ukázka a alternativa, jak to lze řešit i jinak. Takže jen tak dál, i když je požadavek třeba na Perl, proč si neprohlédnout i jiná řešení ...
. Protože kdybych někdy potřeboval a chtěl proniknout do tajů Pythonu, Tvé příspěvky mi budou sloužit jako praktické ukázky.
<NewsItem><b>Category:</b> <i>title</i></NewsItem>a podobne, ako príklad to snáď postačuje
Jedna se o skript do cronu, ktery ma stahnout httpkem xml soubor s novinkami (obsazenymi v tagu newsitem) od posledniho stazeni. A ulozit kazdou novinku jako samostatny xml soubor pod datem jejiho vydani. Nejake cms si z nich pote nacita data.
Nejsem programator, takze jsem si zjednodussil praci wgetem ls apod.
Tiskni
Sdílej: