Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
import glob<br />
>>> glob.glob(’*.py’)<br />
[’primes.py’, ’random.py’, ’quote.py’]<br />
10.3 Argumentele în linia de comandă<br />
Scripturil obişnuite reclamă adesea procesarea liniilor de comandă cu argumente. Aceste argumente sunt depozitate,<br />
sub formă de listă, în atributele argv al modulului sys. Spre exemplu, în urma execuţiei următoarei linii de<br />
comandă ’<strong>Python</strong> demo.py one two three’ va rezulta :<br />
>>> import sys<br />
>>> print sys.argv<br />
[’demo.py’, ’one’, ’two’, ’three’]<br />
Modulul getopt prelucrează sys.argv aplicâd regula functiei UNIX getopt(). O prelucrare mai puternică şi<br />
mai flexibilă a liniei de comandă este oferită de modulul optparse.<br />
10.4 Redirectarea semnalării erorilor şi terminarea execuţiei programului<br />
Modulul sys conţine şi atribute pentru stdin, stdout şi stderr. Cel din urmă este utilizat pentru generarea de<br />
avertismente şi mesaje de eroare, pentru a le face vizibile chiar şi când stdout este redirectat :<br />
>>> sys.stderr.write(’Warning, log file not found starting a new one\n’)<br />
Warning, log file not found starting a new one<br />
Modalitatea cea mai directă de a încheia un scrip este aceea de a folosi ’sys.exit()’.<br />
10.5 Unificarea tratării şirurilor<br />
Modulul re oferă ca instrumente expresii standard pentru procesarea de nivel avansat a şirurilor. Pentru potriviri<br />
complexe si pentru lucrul cu şirurile, sunt puse la dispoziţia utilizatorului expresii care oferă soluţii optimizate şi<br />
rapide :<br />
>>> import re<br />
>>> re.findall(r’\bf[a-z]*’, ’which foot or hand fell fastest’)<br />
[’foot’, ’fell’, ’fastest’]<br />
>>> re.sub(r’(\b[a-z]+) \1’, r’\1’, ’cat in the the hat’)<br />
’cat in the hat’<br />
Când impuse doar capabilităţi reduse, atunci este de preferat lucrul cu metodele specifice şirurilor, pentru că sunt<br />
uşor de citit şi de depanat :<br />
>>> ’tea for too’.replace(’too’, ’two’)<br />
’tea for two’<br />
70 Capitolul 10. Pe scurt despre Standard Library - partea I