Informatika2-2012/Eloadas11

A MathWikiből
(Változatok közti eltérés)
(glob, nath, random, urllib2, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ...)
(glob)
120. sor: 120. sor:
  
 
glob.iglob(pathname) # generátorral tér vissza
 
glob.iglob(pathname) # generátorral tér vissza
<python>
+
</python>
  
 
pathname - lehet relatív, és abszolút elérési útvonal, ami tartalmazhat reguláris kifejezésbeli elemeket...
 
pathname - lehet relatív, és abszolút elérési útvonal, ami tartalmazhat reguláris kifejezésbeli elemeket...
  
 
=== nath, random, urllib2, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ... ===
 
=== nath, random, urllib2, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ... ===

A lap 2012. április 23., 21:28-kori változata

<-- vissza

Tartalomjegyzék

bevezetés alapcsomagokba

A python egy széles körben használható nyelv, és ezt annak köszönheti, hogy rengeteg területre szolgáltat, vagy létezik 3rd party kiegészítő csomagjai. Itt most az alap csomagok egy kis részét fogjuk áttekinteni.

továbbiakban

regexp (re)

Célja hogy reguláris kifejezések segítségével szövegeken tudjatok keresni egy adott mintára és azok elemeit felhasználni.

reguláris kifejezés

a reguláris kifejezés egy karaktersorozat amiben speciális karakterek segítségével mintákat adhatunk meg. a 'alma' egy olyan reg. kif. ami pontosan az alma karaktersorozatra fog egyezni.

speciális karakterek

'.' - a pont a bármilyen karaktert jelöli, kivéve a \n

'^' - azt jelzi, hogy az illesztés során ott van a karakter sorozat eleje

'$' - a kar. sor. végét jelöli

számosság

'*' - jelentése 0 vagy több (mohó)

'+' - 1 vagy több (mohó)

'?' - 0 vagy 1

  • ?, +?, ?? - ha az előzők mögé a ? tesszük akkor a mohó tulajdonságot vezérelhetjük

{m} - az ismétlés pontos számát adhatjuk meg

{m,n} - m és n közötti ismétlést

{m,n}? - hasonó...

escape karakter

'\'

halmaz

[] - ezen belül felsorolt karakter valamelyike lehet az erre illeszkedő karakter. Lehet tartományokat megadni mint a kisbetűk: [a-z], stb [a-zA-Z0-9]. A speciális karakterek elvesztik értelmüket a halmazon belül. Karakterosztályok is használhatóak lásd később. Ha az első karakter a '^' akkor a jelentése az lesz, hogy minden olyan karakter ami nincs a halmazban (ha más pozícióban szerepel akkor nincs különleges szerepe). Zárójelek: [()[\]{}] ua. []()[{}]


csoportosítás

'|' - A|B jelentése A vagy B, ahol A és B tetszőleges reguláris kif.

(...) - csoport jelzése. a Csoport újrahasználása a '\' és a csoport számával lehet: \1

(?...) -

Karakter osztályok

\A - a karakterlánc kezdete

\b - üres karakter a karakterláncon kívül

\B - üres karakter a karakterláncon belül

\d - [0-9]

\D - [^0-9]

\s - [ \t\n\r\f\v]

\S - [^ \t\n\r\f\v]

\w - [a-zA-Z0-9_]

\W - [^a-zA-Z0-9_]

\Z - a karakterlánc vége

felhasználása

prog = re.compile(pattern)
result = prog.match(string)

ami megegyezik

result = re.match(pattern, string, flag = re.I)
re.search(pattern, string, flags=0)

végigfut és egyezéseket keres

re.match(pattern, string, flags=0) csak a kezdeti egyezéseket adja vissza

az eredmény

>>> t=re.match(r'a{0,3}b','abaaab') >>> t <_sre.SRE_Match object at 0xb7235d78> >>> dir(t) ['__copy__', '__deepcopy__', 'end', 'expand', 'group', 'groupdict', 'groups', 'span', 'start']


Jelzők használata:
result = re.match(pattern, string, flag = re.I)

jelentése, hogy a nagy és kisbetűket ne különböztesse meg

glob

Az aktuális könyvtárban keresi azokat mikre illik a keresési feltétel.

glob.glob(pathname)
 
glob.iglob(pathname) # generátorral tér vissza

pathname - lehet relatív, és abszolút elérési útvonal, ami tartalmazhat reguláris kifejezésbeli elemeket...

nath, random, urllib2, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ...

Személyes eszközök