🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216868

Re: elementarne pytania z pythona

#216868
From: fir
Date: Sat, 11 Apr 2020 10:06
89 lines
5267 bytes
W dniu sobota, 11 kwietnia 2020 11:55:45 UTC+2 użytkownik fir napisał:
> W dniu sobota, 11 kwietnia 2020 11:33:54 UTC+2 użytkownik Piotr Chamera napisał:
> > W dniu 2020-04-11 o 11:16, fir pisze:
> > > W dniu piątek, 10 kwietnia 2020 20:35:21 UTC+2 użytkownik fir napisał:
> > >> W dniu piątek, 10 kwietnia 2020 19:33:33 UTC+2 użytkownik Piotr Chamera napisał:
> > >>> W dniu 2020-04-10 o 12:59, fir pisze:
> > >>>> ostatnio troche odpoczalem i mysle sobie by cos postudiowac moze rootkity moze opencl..ale stanelo jadnak na podstawah pythona ;C
> > >>>>
> > >>>> morugam bo jest to troche lamerskie ale z drugiej strony potrzebowalem napisac bota na nasz ircowy kanal
> > >>>>
> > >>>> nie znam jednak zupelnych podstaw na dwutygodniowe lektury podrecznikow troche szkoda mi czasu i moze tu bedzie szybciej
> > >>>>
> > >>>> mam test typu
> > >>>>
> > >>>> msg = "cytuj pnnn 1232"
> > >>>>
> > >>>> i potrzebuje dobrac sie do tej trzeciej liczby i pobrac jej wartosc, pod warunkiem ze pocztek stringa bedzie wlasnie "cytuj pnnn" z kolei jesli tam bedzie nic albo nie liczna tez chcialbym miec to zdetektowane
> > >>>>
> > >>>> jaki to kod? tnx
> > >>>
> > >>> Można użyć wyrażeń, regularnych (pisałem w pythonie 2.7, w 3.x powinno
> > >>> być podobnie)
> > >>>
> > >>> import re
> > >>> m = re.match(u"(cytuj pnnn )(\d+)", msg)
> > >>>
> > >>> jeśli nie dopasuje do wzorca m będzie None
> > >>> jeśli dopasuje, to za pomocą group() można pobrać poszczególne części
> > >>> dopasowania
> > >>>
> > >>>   >>> m.group(0)
> > >>> u'cytuj pnnn 1234'
> > >>>
> > >>>   >>> m.group(1)
> > >>> u'cytuj pnnn '
> > >>>
> > >>>   >>> m.group(2)
> > >>> u'1234'
> > >>>
> > >>>   >>> int(m.group(2))
> > >>> 1234
> > >>
> > >> ok tnx zobacze troche pozniej, tez python 2.7
> > > 
> > > nie dziala ale poprawdzie to troche uproscilem konkretny string jest taki
> > > 
> > > :fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion ogniem 222
> > > 
> > > 
> > > chodzi o to by ignorowal poczatek wymagal ":minion ogniem" i bral liczbe po tym
> > > 
> > > ta liczba pozniej jest numerem lini z pliku tekstaowego ksiazki np "ogniem i mieczem" ktor moj bot minion zacytuje na kanal
> > > 
> > > wie moze kolega?
> > > 
> > > (wiem ze moglbym sie wczytac ale narazi enie mam sily i poszukuje prostej drogi poki nie skumuluje energii)
> > > 
> > 
> > Warto przejrzeć przynajmniej dokumentację modułu wyrażeń regularnach.
> > przy dopasowaniu wzorców tekstowych to bardzo dobre narządzie.
> > 
> >  >>> import re
> >  >>> msg = u":fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion 
> > ogniem 222"
> >  >>> m = re.match(u".*?(:minion ogniem )(\d+)", msg)
> >  >>> int(m.group(2))
> > 222
> 
> ale jak odrzucic kod z tym none
> ten kod chyba dziala ale czy m moze byc none? i czy skipnie to say gdy nie znajdzie wyrazenia? (doucze sie z tego z czasem ale narzie nie che sie w to zbyt wczytywac, cala amsa innych rzeczy nie robi tymczasem problemu )
> 
>       mm = re.match(u".*?(:minion ogniem )(\d+)", ircmsg)
> 
>       m = int(mm.group(2))
> 
>       if m :
>         say(      ogniem_i_mieczem_text[m])
>         say(      ogniem_i_mieczem_text[m+1])

jeszcze jedno pytanke, jesli mozn, ulatwiloby mi sprawe

to ogniem i mieczem przkonwertowalem sobie z epub na txt jakism konwerterem
zachowal unicode itd chyab wszystko jest ok poza faktem ze tam gdzie powinno byc jedno newline 0x0d 0x0a pwoiedzmy jest za kazdym razem 0x0a 0x0a 0x0a (trzy 0A)
i wiekszosc edytorow traktuje to jako 3 newliny

jak sprawdzc czy 
ogniem_i_mieczem_text[m] jest pojedyncza linia z 0x0a? ew jak napisac prsty konwerter w pythonie ktory by polknal plik i zamianil kazde 3 0x0A na jedno 0xA

tnx
Technical Details
Message-ID: <5a6fc0d8-7404-47ba-b150-5e650ee5858c@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <60d7e74e-19ff-4601-83d2-c42e01baa1f6@googlegroups.com> <r6qalc$b4t$1@dont-email.me> <35a7e0da-aafd-48be-84e0-dfbc14674e4f@googlegroups.com> <bf7a5c3a-4d6e-4d07-8067-58e3f32a511a@googlegroups.com> <r6s2u1$a7q$1@dont-email.me> <fb261642-c7b9-45c8-bf14-1c6eaa64d578@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:4a85:: with SMTP id x127mr8022262qka.152.1586599566371;        Sat, 11 Apr 2020 03:06:06 -0700 (PDT)
X-Received: by 2002:ac8:12c2:: with SMTP id b2mr2975901qtj.7.1586599566233; Sat, 11 Apr 2020 03:06:06 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 11 Apr 2020 03:06:05 -0700 (PDT)
In-Reply-To: <fb261642-c7b9-45c8-bf14-1c6eaa64d578@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=5.172.255.167; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.167
References: <60d7e74e-19ff-4601-83d2-c42e01baa1f6@googlegroups.com> <r6qalc$b4t$1@dont-email.me> <35a7e0da-aafd-48be-84e0-dfbc14674e4f@googlegroups.com> <bf7a5c3a-4d6e-4d07-8067-58e3f32a511a@googlegroups.com> <r6s2u1$a7q$1@dont-email.me> <fb261642-c7b9-45c8-bf14-1c6eaa64d578@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5a6fc0d8-7404-47ba-b150-5e650ee5858c@googlegroups.com>
Subject: Re: elementarne pytania z pythona
From: fir <profesor.fir@gmail.com>
Injection-Date: Sat, 11 Apr 2020 10:06:06 +0000
Lines: 112
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit